Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 网页包2丑陋插件ES6_Javascript_Webpack - Fatal编程技术网

Javascript 网页包2丑陋插件ES6

Javascript 网页包2丑陋插件ES6,javascript,webpack,Javascript,Webpack,我使用webpack捆绑ES6编写的模块。在我添加json不可变插件之前,所有这些都已经完成了。需要的是json流stringify,并且有一个类: class JSONStreamify extends CoStream {...} module.exports = function(obj, replacer) { return new JSONStreamify(obj, replacer); }; webpack运行良好,但无法监视文件,因为Uglify抛出错误 意外标记:名称

我使用webpack捆绑ES6编写的模块。在我添加json不可变插件之前,所有这些都已经完成了。需要的是
json流stringify
,并且有一个类:

class JSONStreamify extends CoStream {...}
module.exports = function(obj, replacer) {
    return new JSONStreamify(obj, replacer);
};
webpack运行良好,但无法监视文件,因为Uglify抛出错误

意外标记:名称(JSONStreamify)

我在这里找到了有关模块的信息。我安装并添加了
ecma
支持,但仍然有相同的错误。我尝试过删除我尝试过添加排除节点_模块,但没有结果

我的webpack.config.js是

const path = require('path');
const webpack = require('webpack');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
  entry: {
    backend: './src/backend.js',
    frontend: './src/frontend.js',
  },
  output: {
    path: path.resolve(__dirname,'./dist'),
    filename: '[name].sakui.min.js'
  },
  externals: {
    'jQuery':'jQuery',
    'Foundation':'Foundation',
    'react': 'React',
    'react-dom': 'ReactDOM',
    'redux': 'Redux',
    'react-redux': 'ReactRedux',
    'immutable': 'Immutable',
    'lodash': '_',
    '_': '_'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            "only": "src/**",
            "presets": [
              "env",
              "react",
              "es2017",
              "stage-3"
            ],
            "plugins": [["transform-class-properties", { "spec": true }],"transform-decorators-legacy","minify-simplify"],
            "babelrc": false
          }
        }
      }
    ]
  },
  plugins: [
    new UglifyJSPlugin({
      ecma: 6
    })
  ]
}
有什么提示我可以解决这个问题吗?可能有任何外部工具在webpack之后缩小文件?

解决方案:

我发现的一种方法是通过babel将所有节点_模块传输到ES5,并且它可以工作

my webpack.config.js

const path = require('path');
const webpack = require('webpack');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
  entry: {
    backend: './src/backend.js',
    frontend: './src/frontend.js',
  },
  output: {
    path: path.resolve(__dirname,'./dist'),
    filename: '[name].sakui.min.js'
  },
  externals: {
    'jQuery':'jQuery',
    'Foundation':'Foundation',
    'react': 'React',
    'react-dom': 'ReactDOM',
    'redux': 'Redux',
    'react-redux': 'ReactRedux',
    'immutable': 'Immutable',
    'lodash': '_',
    '_': '_'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        use: {
          loader: 'babel-loader',
          options: {
            "presets": [
              "env",
              "react",
              "es2017",
              "stage-3"
            ],
            "plugins": [["transform-class-properties", { "spec": true }],"transform-decorators-legacy"],
            "babelrc": false
          }
        }
      }
    ]
  },
  plugins: [
    new UglifyJSPlugin()
  ]
}

也许对某人有用。

丑八怪不太懂ES6,。。您有两种选择,可传输到ES5&Uglify,或不使用Uglify,使用巴贝尔自己的Uglifyer。(Babili)我是否可以添加网页包选项以仅传输到ES5节点_模块?(将检查巴比利看起来不错)顺便说一句,我删除了我的网页文件丑陋的插件,但我仍然有这个错误。我应该清除一些缓存吗?我看到它使用了正确的webpack.config文件UglifyJsPlugin现在是内置的。不需要进口。只需使用新的webpack.optimize.UglifyJsPlugin