从ProvidePlugin排除模块

时间:2019-08-28 16:03:37

标签: webpack

我正在使用es6-symbol NPM Package来填充旧版浏览器的符号。

我不想在代码中的任何地方导入此模块,因此我添加了ProvidePlugin配置以在需要时隐式导入它。

new webpack.ProvidePlugin({
    "Symbol": "es6-symbol",
}),

问题是我的webpack构建现在检测到我的polyfill软件包中使用了Symbol:

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! es6-symbol */ "./node_modules/es6-symbol/index.js")))

因此,polyfill软件包正在检测自身,并且无法在较新的浏览器中使用本机Symbol。有什么办法可以将我的polyfill软件包从ProvidePlugin中排除?

此问题与Excluding ProvidePlugin from an entry point类似,但不完全相同。

1 个答案:

答案 0 :(得分:1)

我通过为Symbol加上前缀(global.Symbol)的a pull request来解决了这个问题,因此webpack会忽略它。

我仍然希望找到一个更通用的解决方案,因为并非所有开放源代码所有者都反应灵敏。