如何在webpack

时间:2016-11-27 22:27:59

标签: javascript webpack

由于我已经拥有jQueryReact的缩小版本,因此我不需要对它们进行uglification。我想要的是bundle.js包含完全相同的jquery.min.jsreact.min.js。基本上,我希望webpack只是将它们连接起来。还有一件事,我不想要externals。我怎样才能实现它?

const webpack = require("webpack");

module.exports = {
  "entry": ["./src/main/index.js"],
  "output": {
    "filename": "[name].js",
    "libraryTarget": "umd"
  },
  "module": {
    "rules": [
      {
        "test": /\.(js|jsx)$/,
        "exclude": /node_modules/,
        "loader": "babel-loader",
        "options": {
          "presets": ["es2015", "react"]
        }
      }
    ]
  },
  "resolve": {
    "alias": {
      "jquery": "jquery/dist/jquery.min.js",
      "React": "react/dist/react.min.js",
      "ReactDom": "react-dom/dist/react-dom.min.js"
    }
  },
  "plugins": [
    new webpack.optimize.UglifyJsPlugin({
      "test": /\.(js)$/,
      "exclude": /node_modules/,
      "compress": true
    }),
  ]
}

1 个答案:

答案 0 :(得分:2)

UglifyJsPlugin始终在整个webpack JS输出上运行。没有办法指定任何块或模块来忽略o exclude。

如果您真的不希望Uglify重新缩小这些文件,除了使用externals而不是alias之外别无选择,只需自己连接它们。

然而,我真的,真的建议你不要这样做。通常情况下,让webpack需要并缩小所有内容会好得多。只要您使用webpack的process.env.NODE_ENVproduction设置为DefinePlugin,最终结果将相同或更小,并且您不会将React或jQuery泄漏到您的窗口。