首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack UglifyJS遇到意想不到的标记

Webpack UglifyJS遇到意想不到的标记
EN

Stack Overflow用户
提问于 2017-07-26 08:31:25
回答 1查看 750关注 0票数 1

我正在尝试建立一个开发样板,这也可以很容易地将一个Vue.js项目推向NPM。

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

代码语言:javascript
复制
ERROR in build.js from UglifyJs
Unexpected token: operator (>)

要丑化的代码是:

代码语言:javascript
复制
// 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

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

我可能没有看到什么东西可以很容易地修复,但我不知道哪里出了问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-26 09:25:47

使用来自.babelrc存储库的webpack朴素文件解决了我的问题。不过,我不知道这是怎么回事:

代码语言:javascript
复制
{
    "presets": [
        ["env", { "modules": false }]
    ]
}

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

我再次提到了modules选项的确切含义:

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

它说:

“\”\x{e76f}\x\时,默认为"commonjs“。 启用将ES6模块语法转换为另一种模块类型。 将此设置为false不会转换模块。

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

代码语言:javascript
复制
libraryTarget: 'umd'

要将我的代码编译成umd格式,这不会与"modules": false冲突吗?

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

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

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

从我到目前为止所读到的,这是因为Webpack 2已经知道如何在本地使用ES6模块,因此"modules": false禁用并阻止了babel的转换。

请随时留下评论,并纠正我的任何这一点。我将此留待将来参考,并让其他人看看谁可能也会跌跌撞撞地陷入这一困境。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45321469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档