gulp 中对于css文件的压缩合并出现的unable to minify JavaScript问题

在我们日常使用gulp进行js文件压缩合并的时候:

const gulp = require(‘gulp‘);
const concat = require(‘gulp-concat‘);
const rename = require(‘gulp-rename‘);
const uglify = require(‘gulp-uglify‘);

gulp.task(‘copy-js‘,() => {

gulp.src(‘./js/**/*‘)

.pipe(concat(‘main.js‘))

.pipe(gulp.dest(‘dist/js‘))

.pipe(uglify())

.pipe(rename(‘main.min.js‘))

.pipe(gulp.dest(‘dist/js‘))

.pipe(connect.reload())

})

在以上代码进行的时候,有时候会报出这样的错误:

这里的话我们复制

GulpUglifyError: unable to minify JavaScript这个错误去查询的话一般只是给我们的搜索的回答都是报的错误是js代码错误:报了该错误主要是因为javascirpt语法问题, 此时你要每个文件去看是不可能;错误二可能它的错误其实是:在es5环境里使用了es6、es7语法;

解决第一个问题的方法就是:安装 gulp-util 模块 用于打印日志:

npm install --save-dev gulp-util
gulp.task(‘copy-js‘, function() {
        gulp.src([‘/**/*.js‘, ‘public/lib/**/*.js‘])
            .pipe(uglify())
            .on(‘error‘, function(err) {
                gutil.log(gutil.colors.red(‘[Error]‘), err.toString());
            })
            .pipe(‘dist/js‘)
    })

然后就可以得到打印报错内容:

ADMINs-Mac-pro:frontend admin$ gulp script
[11:45:54] Using gulpfile ~/workspace/frontend/gulpfile.js
[11:45:54] Starting ‘script‘...
[11:45:54] Finished ‘script‘ after 14 ms
[11:45:55] [Error] GulpUglifyError: unable to minify JavaScript
Caused by: SyntaxError: Unexpected token: punc (,)
File: /Users/admin/workspace/frontend/public/js/basic.js
Line: 247

就可以去排除错误了;

其实如果对于自己的代码有信心觉得并不是自己写错了的话,其实就是第二种错误了,就是在gulp中它支持的是es5的语法的,而随着时代的发展,我们程序猿的更新迭代也是迅速的,渐渐的es6和se7都开始频繁的使用起来了,所以gulp的报错也是正常的,那么我们就要安装一些gulp的模块来帮助我们将我们的es6和es7的语法转换成适合gulp的es5的语法;gulp-babel 、babel-preset-es2015:

npm install babel-core [email protected] babel-preset-es2015 -D

在gulp命令框中输出进这行代码,可以将我们书写的es6语法转换成gulp的能够解读的es5的语法;

在这里我们要创建一个文件:

然后在文件中写这一段代码:

但其实这个方法只能对es6的语法转换成es5语法;

但是我们还有别的方法可以实现es5以上的语法转换成es5的语法的模块:

那就是将es2015改成env:

babel-preset-env es5以上的js语法都可以处理

cnpm i babel-core [email protected] babel-preset-env -D

相应的我们也要将.babelrc中的es2015改成env:

然后再去打包压缩我们的js的代码就不会出现这个报错了;

OK,这次就分享这么一个小报错了,各位看官下次再见,托尔接着码去嘹。

原文地址:https://www.cnblogs.com/zhuangch/p/11609919.html

时间: 2024-10-29 03:34:50

gulp 中对于css文件的压缩合并出现的unable to minify JavaScript问题的相关文章

189.gulp创建处理css文件任务

在cmd窗口执行命令:npm install gulp-cssnano,该插件为npm管理的一个包,其实npm就相当于是Python中的pip,pip是Python包的管理工具,而npm就是node包的管理工具. 对于css文件的处理,主要就是将文件进行压缩,对css文件进行压缩只是依靠gulp包还是不能进行的,同样需要一个gulp的插件,gulp-cssnano,该插件可以将css文件进行压缩的处理. 具体的示例代码如下: var gulp = require('gulp'); var css

vue中引入css文件

两种方式引入css文件,一种是直接在main.js中引入,即下面这种写法: import 'element-ui/lib/theme-default/index.css' 这种写法适用于此css文件存在于项目中,不适用于通过网址访问的方式引入,会报错.偶试着引入Font Awesome,结果报错: import "http://netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" 而直接在组件中引入却可

对前端web js,css文件进行压缩混淆

下载 yuicompressor jar包到本地路径 写一个批处理脚本compressJs.bat,将要压缩的js文件放在批处理文件的同一路径,yuicompressor.jar也放在同一路径 运行批处理文件,在该路径下会生成一个min文件夹,里面的*.min.jar就是压缩混淆后的js文件 css文件同上操作 一下是批处理脚本的内容: echo off set PathName=%cd%set minPath=%PathName%\min if exist "%minPath%" (

ssm 整合中js,css 文件无法引入

问题:ssm 整合中第三方 js,css 文件无法引入 检查:ssm 整合配置完好 无拦截器拦截 spring mvc  静态资源已配置 编译时可以直接跳转到js  css 问题发现 js  css 文件放在WEB-INF 下,导致无法引入 解决 js  css 文件放在webapp 下,可以引入 原文地址:https://www.cnblogs.com/jsbk/p/9461374.html

spring boot 项目 freemarker 无法加载static 中 js css 文件 原因(报错404)

去掉@EnableWebMvc  注解 ,相关原因请看原博文 https://blog.csdn.net/testcs_dn/article/details/80249894 原文地址:https://www.cnblogs.com/0kuxia0/p/9605436.html

实际项目中,为什么多个css、js文件要实现合并与压缩?(了解了这你才算入门)

Web性能优化最佳实践中最重要的一条是减少HTTP请求.而减少HTTP请求的最主要的方式就是,合并并压缩JavaScript和CSS文件. 关于编写css时,我们应注意通过一些细节来控制css文件的大小,比如:全局样式.继承样式.缩写样式,空格.注释等:同时你也可以通过在线工具对你的css文件进行压缩,来减少css文件的大小,但压缩后的css文件在可维护性.识别性方面变的特别弱.但更复杂的情况是,如果你的页面里面引用了多个css.多个js文件时就可能处理不好. 多个css.多个js文件进行自动合

gulp完成javascript压缩合并,css压缩

最近需要对项目进行优化,主要是对js的压缩合并和css文件的压缩,查找相关资料之后发现gulp可以实现相关的功能,特此分享一下使用心得. 1.安装gulp gulp是基于Node.js的前端构建工具.所以首先需要安装nodejs,安装nodejs. 完成nodejs安装之后,需要使用npm安装gulp. 先安装全局gulp npm install -g gulp 然后在项目根目录下安装本地gulp. 此时项目根目录下会多出下面这个文件夹 node_modules 好的,现在gulp已经安装完成了

Grunt的配置及使用(压缩合并js/css)

Grunt的配置及使用(压缩合并js/css) 安装 前提是你已经安装了nodejs和npm. 你能够在 nodejs.org 下载安装包安装.也能够通过包管理器(比方在 Mac 上用 homebrew,同一时候推荐在 Mac 上用 homebrew). 安装grunt CLI npm install -g grunt-cli 依照官方的说法.grunt-cli仅仅是为了在同一台机器上安装不同的grunt版本号,那么咱们先不去管他. 在项目中使用grunt 首先须要往项目里加入两个文件:pack

用Grunt进行CSS文件压缩

假设你的项目的CSS文件全部放在项目目录下名为css的文件夹中,现在将它压缩合并成一个名为main-min.css的文件,放在css-min文件夹下. (1)首先保证机器安装了node.js. (2)在项目的目录下建立名为package.json的文件,用于配置需要安装的npm包,package.json的内容如下: { "author": "evan <[email protected]>", "name": "CSS_Z