GulpUglifyError:无法缩小JavaScript原因:SyntaxError:意外的标记名称«k»,预期的标点«;»

vik*_*han 1 angularjs gulp

我收到一些奇怪的错误,但是为了抑制这些错误,我必须更改所有我得到错误的地方?

//gulp file code
var fs = require('fs');
var path = require('path');`enter code here`
var merge = require('merge-stream');
var gulp = require('gulp');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var sourcemaps = require('gulp-sourcemaps');
var gutil = require('gulp-util');



gulp.task('css',function()
{

return gulp.src(['assets/css/*.css'])
    .pipe(sourcemaps.init())

    .pipe(sourcemaps.write())
    .pipe(uglify())
    .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
    .pipe(concat('all.css'))
    .pipe(gulp.dest('build/css'))

})
gulp.task('js',function()
{

return gulp.src(['shared/*.js','controller/*.js','directives/*.js','services/*.js'])
    .pipe(sourcemaps.init())

    .pipe(sourcemaps.write())
    .pipe(uglify())
    .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
    .pipe(concat('all.js'))
    .pipe(gulp.dest('build/js'))

})

gulp.task('default', ['css','js']);
Run Code Online (Sandbox Code Playgroud)

我试图在线找到解决方案,但没有运气

for (let k = 0; k < $scope.allCollctedTags.length; k++) 
{
 $scope.customtags.push($scope.allCollctedTags[k].text);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我用var替换let,那么此错误现在已消除,以下代码会出现以下错误:

$scope.multipleImages.push(...response.data.result.imageName);
but if i write it as below then this error disappear
$scope.multipleImages.push(response.data.result.imageName);

also if i use underscore js then also it give me error 
let temparray = _.difference($scope.multipleImages,$scope.extractedImagesBrowse);
Run Code Online (Sandbox Code Playgroud)

现在该怎么办,我可以在一个或两个文件中执行这些操作,但是对于整个项目,我无法执行。

ede*_*ekk 5

遵循答案,我发现我试图编译无法与所拥有ugilfy版本解析的代码。尝试使用ugifly-es代替纯uglify包:

const uglify = require("gulp-uglify");
Run Code Online (Sandbox Code Playgroud)

至:

const uglify = require("gulp-uglify-es");
Run Code Online (Sandbox Code Playgroud)

并确保已安装软件包。

另外,如果您不想使用不受支持的软件包,请查看此答案,因为它涵盖了您的问题:

  • 2020:使用 terser / gulp-terser 代替 uglify-es / gulp-uglifyes (9认同)

Bai*_*shu 5

如果您使用 ES6 语法或将代码解析为 ES6 的过滤器(如最新版本的gulp-coffee),gulp-uglify则不支持。

可以替换gulp-uglifyterser,支持 ES6。

https://www.npmjs.com/package/terser