Webpack 2:在获取polyfill上修复构建错误

时间:2017-03-15 11:41:45

标签: javascript webpack babel-polyfill

我使用webpack 2.2.1编写了一个JavaScript ES6开发环境,我正在开发一个应用程序package-a

我也使用此环境来管理package-b上使用npm link定义的开发依赖项。

环境运作良好。

现在我需要填充包含b 使用的fetch API。

所以whatwg-fetch安装好了。

我使用的填充方式是本讨论中建议的方式:https://gist.github.com/Couto/b29676dd1ab8714a818f#gistcomment-1584602

所以我没有在我的代码上调用import 'whatwg-fetch',但我在我的webpack配置中就是这样:

  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'
    }),
    ...

这对我来说总是很好用,如果我在我的主(fetch)模块中使用package-a也可以工作,但是当我在依赖项中使用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.

请注意,回溯包含对package-b node_modules 目录的引用(其中whatwg-fetch作为开发依赖项安装,因为我想保留"纯& #34;没有自动polifyll主机env)。

删除开发依赖项并将其从node_modules中删除,更改回溯:

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上就能正常工作。

问题是:这里发生了什么?我正在开发一个存在依赖关系的包,为什么在这种情况下通过webpack的polyfill失败?有'一种解决方法吗?

0 个答案:

没有答案