构建 JavaScript 项目 Travis-CI 时出错
Error on build JavaScript project Travis-CI
我有一个项目,我正在用Gulp.js在本地构建。但是当我把它推送到GitHub上时,Travis开始构建它。我收到以下错误:
module.js:338
throw err;
^
Error: Cannot find module 'gulp-concat'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/travis/build/thyagostall/freecell/gulpfile.js:4:11)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
.travis.yml
:
language: node_js
node_js:
- "0.12"
before_script:
- npm install -g gulp gulp-concat gulp-connect gulp-html-replace gulp-eslint
script: gulp
还有我gulpfile.js
:
var gulp = require('gulp'),
connect = require('gulp-connect'),
concat = require('gulp-concat'),
htmlreplace = require('gulp-html-replace');
var distDir = './build/',
sourceDir = './src/';
gulp.task('webserver', function() {
connect.server({
root: distDir,
port: 2345,
livereload: true
});
gulp.watch('src/**/*.*', ['build', 'images', 'styles', 'vendor']);
});
gulp.task('images', function() {
gulp.src(sourceDir + '**/*.{jpg,png,gif}')
.pipe(gulp.dest(distDir));
});
gulp.task('styles', function() {
gulp.src(sourceDir + '**/*.css')
.pipe(gulp.dest(distDir));
});
gulp.task('build', function() {
gulp.src([sourceDir + '**/utility.js', sourceDir + '**/game_events.js', sourceDir + '**/memento.js', sourceDir + '**/*.js'])
.pipe(concat('main.js'))
.pipe(gulp.dest(distDir))
.pipe(connect.reload());
});
gulp.task('vendor', function() {
gulp.src(sourceDir + '**/*.html')
.pipe(htmlreplace({
'vendor': 'vendor.js',
'js': 'main.js'
}))
.pipe(gulp.dest(distDir));
});
gulp.task('lint', function() {
gulp.src(sourceDir + '**/*.js')
.pipe(eslint())
.pipe(eslint.format())
});
gulp.task('default', ['build', 'images', 'styles', 'vendor']);
我错过了什么明显的东西吗?
首先,将.travis.yml
更改为以下内容:
language: node_js
node_js:
- "0.12"
before_script:
- npm install -g gulp
script: gulp
您只需要全局安装gulp
,因为这提供了gulp
的命令行工具。根据官方 npm 文档:
有两种方法可以安装 npm 包:本地或全局。您可以根据您希望如何使用包来选择要使用的安装类型。
如果您想将其用作命令行工具,例如 grunt CLI,那么您希望全局安装它。另一方面,如果你想使用类似 Node 的要求来依赖你自己的模块中的包,那么你需要在本地安装。
其次,我在你的github帐户(从你的StackOverflow配置文件链接)上做了一些调查,找到了你正在尝试构建的项目。查看package.json,我发现devDependencies
中没有gulp-concat
。这可能是由于键入:
npm install gulp-concat
而不是:
npm install gulp-concat --save-dev
这可以解释为什么你可以在本地构建项目,但它在 Travis-CI 上失败了。将gulp-concat
添加到devDependencies
应该可以解决此问题。
相关文章:
- javascript中的数组出错
- Travis CI构建持续失败
- 使用速度、流星和travis ci
- 构建 JavaScript 项目 Travis-CI 时出错
- 如何在 Travis CI 中访问环境变量
- 为什么我在 Travis-CI 上收到关于模块未定义的警告
- travis-ci 在 grunt-contrib-imagemin 任务上构建失败(无法准备好未定义的属性“内容”
- Mocha测试在本地通过,但在Travis CI上失败
- 如何在Travis CI中以无头模式运行茉莉花规范
- 启用JavaScript的测试(Bootstrap 3、Rails 4、Travis CI)出错
- Travis CI是否支持PhoneGap应用程序?
- Travis-CI + (BrowserStack或其他浏览器提供程序)
- Travis CI with Amazon Elastic Beanstalk
- Travis CI无法找到生成的lcov.info文件
- 未捕获的SyntaxError:在严格模式下使用const | Travis-ci业力测试与铬抛出
- 白内障测试在当地通过,但在Travis CI上未通过
- 为javascript项目设置jshint和travis-ci
- 为什么Travis CI不运行“npm install”?使用NODE_ENV生产
- 由于URL/散列模块依赖,Travis-CI构建失败
- QUnit测试在Travis CI上失败(在phantomjs上运行grunt.js)