【问题标题】:webpack -p fails to uglify es2015 codewebpack -p 无法丑化 es2015 代码
【发布时间】:2016-08-10 21:15:51
【问题描述】:

webpack -p cli 命令uglify es2015代码失败

package.json

  "devDependencies": {
    "babel": "^6.5.2",
    "babel-core": "^6.13.2",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.13.2"
  }

webpack.config.js

var webpack = require("webpack");

var config = {
    entry: './src/app.js',
    devtool: "source-map",
    output: {
        path: '../Scripts',
        filename: 'bundle.js'
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                query: {
                    presets: ['es2015']
                },
                include: ["./src"],
                exclude: /node_modules/
            }
        ]
    }
}

module.exports = config;

运行webpack -p时出错

ERROR in bundle.js from UglifyJs
Unexpected character '`' [./src/LineEndRenderer.js:33,0]

(es2015模板字符串使用)

运行 webpack -d 工作正常。

【问题讨论】:

  • 你有没有想过这个问题?我遇到了完全相同的问题 ("webpack": "^2.1.0-beta.21")
  • 不,还没有 :( 我在发布前还有一些时间,所以我暂时继续使用 -d

标签: javascript webpack babeljs


【解决方案1】:

github 上的用户 (fulls1z3) 提出了一个不需要 babel 的 solution(参见 2016 年 11 月 26 日的帖子):

这是一个副本:

webpack#2 用户,我特此通过提供详细说明来提供帮助,以帮助您将 UglifyJs2 的 Harmony 分支与 webpack 一起使用:

  • 分叉 webpack,
  • 在该分支上,删除除 master 之外的所有分支,
  • 将 master 分支克隆到本地文件夹,
  • 在本地文件夹中,删除所有文件,
  • 提交空的本地文件夹,
  • 下载最新版本(例如:目前为 v2.1.0-beta.27)
  • 将zip文件的内容解压到本地文件夹,
  • 在本地文件夹中,编辑 forked package.json,更改 "uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony" 将 UglifyJs2(和谐分支)依赖项指向该分支。

  • 提交更改,

  • 最后,将你的 package.json 中的 webpack 指向你的自定义 fork: "webpack": "[USERNAME]/webpack#master"

或者,

  • 将你的 package.json 中的 webpack 指向 fulls1z3/webpack(ES6/ES2015 友好的 webpack 分支): "webpack": "fulls1z3/webpack#v2.1.0-beta.27-harmony"

我在全球范围内使用 webpack,所以我也必须运行它:

npm install yargs 支持-颜色增强-解析解释 Tapable webpack-sources source-map uglify-js object-assign async loader-runner acorn watchpack mkdirp ajv ajv-keywords node-libs-browser -g

然后我将我的全局webpack npm 文件夹替换为来自https://github.com/fulls1z3/webpack/releaseswebpack-2.1.0-beta.27-harmony.zip

最后,我用来自https://github.com/mishoo/UglifyJS2/tree/harmonyUglifyJS2-harmony.zip 替换了我的全局uglify-js npm 文件夹

【讨论】:

  • 这太疯狂了:dizzy_face:
  • 除非 UglifyJs 有和声支持,否则我们将继续受苦。我同意,分叉所有的 webpack 并不是一个可靠的解决方案。另一方面,bebraw 刚刚发布了uglifyjs-webpack-plugin 插件,以便您可以使用/配置与 webpack 解耦的 UglifyJs。
猜你喜欢
  • 1970-01-01
  • 2017-02-09
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 2018-04-13
相关资源
最近更新 更多