【问题标题】:webpack exclude property vs webpack-node-externals packagewebpack 排除属性与 webpack-node-externals 包
【发布时间】:2020-05-24 10:22:04
【问题描述】:

在 webpack 服务器配置文件中,

module: {
    rules: [
      {
        test: /\.js?$/,
        loader: "babel-loader",
        exclude: /node_modules/,
      }
    ]
  }

exclude 表示不编译那些目录,在这种情况下它只是 node_modules。不过也有webpack-node-externals 包。

const nodeWebExternals = require("webpack-node-externals");
  externals: [nodeWebExternals()],

module.exports 对象内的externals 属性将告诉webpack 不要将任何库捆绑到我们服务器上的输出包中,如果该库存在于node-modules 文件夹中。

这两者有什么区别?

【问题讨论】:

    标签: javascript node.js reactjs webpack server-side-rendering


    【解决方案1】:

    exclude 选项告诉babel-loader 不要在node_modules 文件夹内转换(现代语法到 es5)。如果没有 externals 部分,webpack 将不会转换语法,但会将每个正在使用的 node_module 捆绑到最终捆绑包中。

    通常在捆绑服务器代码时,不需要捆绑node_modules,因为它作为文件夹存在于服务器中,因此,您告诉webpack将这些模块标记为externals ,它将为模块生成一个常规节点require,而不是模块代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 2017-04-14
      • 2018-12-22
      • 1970-01-01
      相关资源
      最近更新 更多