由于过多的js错误,Gulp.js无法编译angular.js项目?

时间:2014-05-06 12:59:19

标签: node.js angularjs gulp

我正试图从Grunt搬到Gulp。这个项目在Grunt下运行良好,所以我必须在Gulp做错事。

除脚本外,所有其他任务都有效。我已经厌倦了现在添加和评论部分。

我一直收到与意外令牌有关的错误。使用mg-min:

stream.js:94
  throw er; // Unhandled stream error in pipe.
        ^
Error: Line 2: Unexpected token :
at throwError (/Users/stevelombardi/Documents/dsg/node_modules/gulp-ngmin/node_modules/ngmin/node_modules/esprima/esprima.js:1156:21)

使用ng-min注释并使用Uglify(默认):

Error caught from uglify: Unexpected token: punc (:) in /Users/stevelombardi/Documents/dsg/dist/scripts/main.min.js. Returning unminifed code
[gulp] gulp-notify: [Gulp notification] Scripts task complete
[gulp] Finished 'scripts' after 2.97 s

我很难过。这是任务:

// Scripts
gulp.task('scripts', function() {
return gulp.src([
    "bower_components/jquery/jquery.js",
    "bower_components/angular/angular.js",
    "bower_components/bootstrap/dist/js/bootstrap.js",
    "bower_components/modernizr/modernizr.js",
    "bower_components/angular-resource/angular-resource.js",
    "bower_components/angular-cookies/angular-cookies.js",
    "bower_components/angular-sanitize/angular-sanitize.js",
    "bower_components/angular-route/angular-route.js",
    "bower_components/jquery.easy-pie-chart/dist/angular.easypiechart.js",
    "bower_components/angular-bootstrap/ui-bootstrap.min.js",
    "bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js",
    "bower_components/kapusta-jquery.sparkline/dist/jquery.sparkline.js",
    "bower_components/leaflet-dist/leaflet.js",
    "bower_components/angular-leaflet/dist/angular-leaflet-directive.js",
    "bower_components/ngprogress/build/ngProgress.js",
    "bower_components/angular-bootstrap-toggle-switch/angular-toggle-switch.js",
    "bower_components/flot/jquery.flot.js",
    "bower_components/flot/jquery.flot.resize.js",
    "bower_components/flot.tooltip/js/jquery.flot.tooltip.js",
    "bower_components/angular-flot/angular-flot.js",
    'src/scripts/**/*.js',
])
    .pipe(jshint('.jshintrc'))
    .pipe(jshint.reporter('default'))

// .pipe(ngmin({
//     dynamic: false
// }))
// .pipe(gulp.dest('dist/scripts'))

.pipe(concat('main.js'))
.pipe(gulp.dest('dist/scripts'))
.pipe(rename({
    suffix: '.min'
}))
.pipe(uglify())
.pipe(gulp.dest('dist/scripts'))
    .pipe(notify({
        message: 'Scripts task complete'
    }));
});

1 个答案:

答案 0 :(得分:0)

我认为可以安全地说两个插件的输出可以表示你在传递给ngmin或uglify的第二行有语法错误。

这两个插件的反应有点不同。一个是帮助告诉你行号,另一个是有用地告诉你文件名。

由于您已经重命名了该文件,因此他们似乎在谈论已经缩小的文件,而事实上它只是过早地重命名了其内存中的表示。

对于初学者,我建议您不要重命名文件,直到您缩小文件,因为您的错误令人困惑。此时,您可能会看到错误出现在保存到dist / scripts / main.js的文件中(在该文件的第2行,您显然有错误的冒号)。