Webpack 2:如何排除除。之外的所有node_modules

时间:2017-07-21 20:38:53

标签: javascript ecmascript-6 webpack-2

我需要在/node_modules/identicons/上运行babel但是我仍然想要排除所有其他包。

原因 the identicons package 正在使用模板字符串并在运行时中断

"webpack -p"

有问题的字符串(node_modules / identicons / index.js):

str += `<rect x="${x}" y="${y}" width="${xside}" height="${xside}" style="fill:${color}" />`

Webpack.config.babel

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

如何编写该模式?

4 个答案:

答案 0 :(得分:7)

我认为你可以使用正则表达式,比如

exclude: [
  /node_modules\/(?!identicons).*/
]

答案 1 :(得分:2)

您可以排除node_modules以外的identicons的所有内容:

exclude: /node_modules\/(?!identicons$)/

答案 2 :(得分:1)

排除整个node_modules文件夹,但必需的模块除外:

{
  test: /\.js$/,
  exclude: /node_modules\/(?!identicons\/).*/,
}

https://github.com/webpack/webpack/issues/2031#issuecomment-219040479

答案 3 :(得分:1)

另一种方式:

exclude: [
  {
    test: [
      path.resolve(__dirname, './node_modules'),
    ],
    exclude: [
      path.resolve(__dirname, './node_modules/MODULE_TO_INCLUDE'),
      path.resolve(__dirname, './node_modules/ANOTHER_MODULE_TO_INCLUDE'),
    ]
  }
]

对我有用。

相关问题