繁体   English   中英

Webpack UglifyJS运行到意外令牌中

[英]Webpack UglifyJS running into unexpected token

我正在尝试建立一个开发样板,该样板也可以轻松地将Vue.js项目推送到NPM。

我的webpack.prod.js文件遇到问题,错误是:

ERROR in build.js from UglifyJs
Unexpected token: operator (>)

要丑化的代码是:

// minify with dead-code elimination
new webpack.optimize.UglifyJsPlugin({
    compress: {
        warnings: false
    }
})

这是我的项目以及似乎出错的确切文件:

https://github.com/stephan-v/vue-inline-svg/blob/master/webpack/webpack.prod.js

当我运行npm run production时,该项目使用Babel转换为ES6,将Webpack转换为UMD格式。 此命令使用webpack.prod.js配置。

我可能看不到容易解决的问题,但是我不知道这里出了什么问题。

使用webpack简单存储库中的.babelrc文件解决了我的问题。 我不知道这是怎么回事:

{
    "presets": [
        ["env", { "modules": false }]
    ]
}

据我所知, .babelrc包含一些插件和选项,可告诉babel如何转换我的代码。

我修改了modules选项的确切含义是:

https://babeljs.io/docs/plugins/preset-env/#optionsmodules

它说如下:

“ amd” | “ umd” | “ systemjs” | “ commonjs” | false,默认为“ commonjs”。

启用将ES6模块语法转换为其他模块类型的功能。

将此设置为false不会转换模块。

因为我希望所有用户都可以使用我的软件包,并且我的webpack生产配置使用:

libraryTarget: 'umd'

要将我的代码编译为umd格式,这是否与"modules": false不冲突"modules": false虽然是"modules": false

我也习惯在.babelrc文件中看到es2015预设。 这无处可寻。 现在是默认设置吗?

似乎es2015选项已被完全删除:

https://github.com/vuejs-templates/webpack/commit/424cd3f6d101ffeb57f48bca55d7951b35af60e0

从到目前为止的内容来看,这是因为Webpack 2已经知道如何原生使用ES6模块,因此"modules": false禁用并防止babel进行编译。

随时发表评论,并在任何这方面纠正我。 我将其保存下来,以备将来参考,并让其他人看看谁也可能偶然发现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM