Gulp 寿命错误:无法缩小JavaScript,原因是:语法错误:意外的标记名称k,应为punc;»

yzuktlbb  于 2023-03-21  发布在  Gulp
关注(0)|答案(3)|浏览(203)

我得到一些奇怪的错误,但为了抑制这些错误,我必须改变一切,我得到的错误?

//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']);

我试着在网上找到解决方案,但没有运气

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

但是如果我用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);

现在该怎么办,我可以在一个或两个文件中做这些事情,但对于整个项目我不能这样做。

tquggr8v

tquggr8v1#

按照this的回答,我发现我试图编译的代码不能用我的ugilfy版本解析。尝试使用ugifly-es而不是纯uglify包:

const uglify = require("gulp-uglify");

收件人:

const uglify = require("gulp-uglify-es");

并确保安装了该软件包。
此外,如果您不想使用不受支持的软件包,请查看此answer,因为它涵盖了您的问题:

enyaitl3

enyaitl32#

如果您使用ES6语法,或者过滤器将您的代码解析为ES6(如gulp-coffee的最新版本),则gulp-uglify不支持。
您可以将gulp-uglify替换为支持ES6的terser
https://www.npmjs.com/package/terser

blpfk2vs

blpfk2vs3#

无论出于何种原因使用gulp =< 3.xgulp-terser都将无法工作。在这种情况下,您可以将

require('gulp-uglify');

require("gulp-uglify-es").default;

至少在我维护的一个老项目中,它做到了这一点,没有默认值就不能工作。(另外,如果你以前没有这样做,你也需要npm install --save-dev gulp-uglify-es)。
这是我在更新一些前端依赖项时发现的一个快速修复方法,这些依赖项首先导致了这种情况的发生,并且应该用于项目有多个gulp 3.x或更低版本的传递依赖项的情况,这些依赖项需要升级和重构,如果可能的话,应该考虑使用。

相关问题