当前位置: 首页 > 面试题库 >

如何用gulp-uglify缩小ES6功能?

许俊雅
2023-03-14
问题内容

当我运行gulp时,出现以下错误:

[12:54:14] { [GulpUglifyError: unable to minify JavaScript]
cause:
{ [SyntaxError: Unexpected token: operator (>)]
 message: 'Unexpected token: operator (>)',
 filename: 'bundle.js',
 line: 3284,
 col: 46,
 pos: 126739 },
plugin: 'gulp-uglify',
fileName: 'C:\\servers\\vagrant\\workspace\\awesome\\web\\tool\\bundle.js',
showStack: false }

令人反感的行包含箭头功能:

let zeroCount = numberArray.filter(v => v === 0).length

我知道我可以用以下替换它,以通过放弃ES6语法来纠正缩小错误:

let zeroCount = numberArray.filter(function(v) {return v === 0;}).length

如何通过gulp压缩包含ES6功能的代码?


问题答案:

您可以像这样利用npmjs …

const gulp = require('gulp');
const babel = require('gulp-babel');
const uglify = require('gulp-uglify');

gulp.task('minify', () => {
  return gulp.src('src/**/*.js')
    .pipe(babel({
      presets: ['es2015']
    }))
    .pipe(uglify())
    // [...]
});

这将在管道中尽早移植es6,并在缩小时将其作为广泛支持的“纯” javascript。

*正如 *注释中 所指出的那样, 可能需要注意的重要一点
是,核心babel编译器在此插件中作为对等依赖项提供。如果没有通过仓库中的另一个dep下拉核心库,请确保已将其安装在您的终端上。

综观对等体依赖性在gulp- babel作者是指定@巴贝尔/芯(7.x中)。不过,稍早的babel-core(6.x)也可以使用。我的猜测是作者(两个项目的人都一样)正处于重新组织其模块命名的过程中。无论哪种方式,两个npm安装端点都指向https://github.com/babel/babel/tree/master/packages/babel-
core
,因此您可以使用以下任意一个…

npm install babel-core --save-dev

要么

npm install @babel/core --save-dev


 类似资料:
  • 本文向大家介绍gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题),包括了gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)的使用技巧和注意事项,需要的朋友参考一下 gulp简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用

  • 问题内容: 在angularjs中,我们将参数作为依赖项注入传递。例如, 所以当它缩小时,它变成 现在,a,b,c,d将不会被角度和整个代码分别解释为$ scope,$ rootScope,$ location和$ http无法工作。为此,angularjs提供了一种解决方案,即 我们可以使用上述语法注入不同的依赖项。直到我没有使用一些自定义的角度服务作为依赖项,此方法都有效。例如 如果我有类似的

  • AssertionError[ERR_ASSERTION]:必须在gulp.set[as_settask](D:\say-my-name-rg\saymyname\node_modules\bujerker\lib\set-task.js:10:3)处指定任务函数,在gulp.Task(D:\say-my-name-rg\saymyname\node_modules\bujerker\lib\se

  • 我试图实现一个单页应用程序的角度。为了使我的工作流更好,我尝试实现了Gulp。 我在安装gulp插件时遇到了一些严重的npm错误,但这是另外一个故事,我意识到,无论有没有错误,它都是工作的。 我真正碰到的是useref插件。或者更确切地说,丑陋的插件。 我想这可能是gulp做的异步工作造成的。可能是uglify插件试图丑化此时此刻未完成的useref文件。怎么知道? 所以我把所有的东西都分开了,以

  • 请务必理解如下章节后阅读此章节: 安装 Node 和 gulp 使用 gulp 压缩 JS 访问论坛获取帮助 压缩 css 代码可降低 css 文件大小,提高页面打开速度。 我们接着将规律转换为 gulp 代码 规律 找到 css/ 目录下的所有 css 文件,压缩它们,将压缩后的文件存放在 dist/css/ 目录下。 gulp 代码 你可以 下载所有示例代码 或 在线查看代码 当熟悉 使用 g

  • 请务必理解如下章节后阅读此章节: 安装 Node 和 gulp 访问论坛获取帮助 压缩 js 代码可降低 js 文件大小,提高页面打开速度。在不利用 gulp 时我们需要通过各种工具手动完成压缩工作。 所有的 gulp 代码编写都可以看做是将规律转化为代码的过程。 规律 找到 js/ 目录下的所有 js 文件,压缩它们,将压缩后的文件存放在 dist/js/ 目录下。 gulp 代码 你可以 下载