防止gulp uglify剥离es6


清 月
2025-03-09 10:26:34 (11天前)
  1. 我正在使用gulp babel来编译es6,但似乎uglify完全剥离了我的es6。运行时,我的命令行中没有出现任何错误。任何想法为什么会被剥夺......

2 条回复
  1. 0# 布偶的表弟派大星丶 | 2019-08-31 10-32



    UglifyJS(gulp-uglify的依赖项)有一个Compress选项,默认情况下会删除未使用的变量。既然你从不参考

    foo

    它从压缩源中删除。





    UglifyJS2文档





    压缩选项:

    1. <code>
    2. unused (default: true)
    3. </code>
    4. - 删除未引用的函数和变量(除非设置为,否则简单的直接变量赋值不计为引用
    5. <code>
    6. "keep_assign"
    7. </code>
    8. </p>



    以来

    const foo = 4

    是一个简单的直接变量赋值,它不会出现在压缩代码中。您可以假设您不需要未使用的代码或调整您的gulp文件:




    1. gulp.task(‘scripts’, function () {
      return gulp.src(‘src/js/*.js’)
      .pipe(sourcemaps.init())
      .pipe(babel())
      .pipe(uglify({
      compress: {
      unused: false
      }
      }))
      .pipe(sourcemaps.write(‘./‘))
      .pipe(gulp.dest(‘dist/js’));
      });

    2. </code>

登录 后才能参与评论