Javascript 网页包2:修复获取polyfill时的生成错误
我有一个带有Webpack2.2.1的JavaScriptES6开发环境,在这里我正在开发一个应用程序Javascript 网页包2:修复获取polyfill时的生成错误,javascript,webpack,babel-polyfill,Javascript,Webpack,Babel Polyfill,我有一个带有Webpack2.2.1的JavaScriptES6开发环境,在这里我正在开发一个应用程序package-a 我还使用这个环境来管理对package-b的开发依赖关系,该依赖关系是使用npm-link定义的 环境很好 现在我需要对package-b使用的fetchAPI进行多填充 所以安装了whatwgfetch 我使用的填充方式是本讨论中建议的方式: 因此,我没有对我的代码调用import'whatwg fetch',但我的网页配置中有以下内容: plugins: [
package-a
我还使用这个环境来管理对package-b
的开发依赖关系,该依赖关系是使用npm-link
定义的
环境很好
现在我需要对package-b使用的fetch
API进行多填充
所以安装了whatwgfetch
我使用的填充方式是本讨论中建议的方式:
因此,我没有对我的代码调用import'whatwg fetch'
,但我的网页配置中有以下内容:
plugins: [
new webpack.ProvidePlugin({
'Promise': 'es6-promise',
'fetch': 'imports-loader?this=>global!exports-loader?global.fetch!whatwg-fetch',
'Headers': 'imports-loader?this=>global!exports-loader?global.Headers!whatwg-fetch'
}),
...
这对我来说总是很好,如果我从主(package-a
)模块中使用fetch
,这也很有效,但当我在依赖项中使用fetch时,我会得到以下回溯:
ERROR in ../package-b/~/imports-loader?this=>global!../package-b/~/exports-loader?global.fetch!../ecmwf-prwa-editor/~/whatwg-fetch/fetch.js
Module build failed: Error: "...package-b/node_modules/whatwg-fetch/fetch.js" is not in the SourceMap.
ERROR in ../package-b/src/something/something.js
Module not found: Error: Can't resolve 'whatwg-fetch' in '/Users/keul/.../package-b/src/something'
...
请注意,回溯包含对package-b
node_modules目录的引用(其中whatwg fetch
仅作为开发依赖项安装,因为我希望保留在“纯”中,而不自动polifyll host env)
删除开发依赖项并将其从节点\u模块中删除
更改回溯:
ERROR in ../package-b/~/imports-loader?this=>global!../package-b/~/exports-loader?global.fetch!../ecmwf-prwa-editor/~/whatwg-fetch/fetch.js
Module build failed: Error: "...package-b/node_modules/whatwg-fetch/fetch.js" is not in the SourceMap.
ERROR in ../package-b/src/something/something.js
Module not found: Error: Can't resolve 'whatwg-fetch' in '/Users/keul/.../package-b/src/something'
...
如果我放弃这种填充方式,只需将import'whatwg fetch'
放在package-a
上即可正常工作
问题是:这里发生了什么?我正在开发一个存在依赖关系的包,为什么polyfill-through网页包在这种情况下会失败?有办法解决吗