我希望发布一个依赖于react
的module
。我想在我的app
项目中使用这个模块,该项目也依赖于react。我有以下webpack模块配置:
module.exports = {
//......
externals: {
'react': 'react'
},
output: {
library: 'my-module',
libraryTarget: 'umd'
},
resolve: {
extensions: ['', '.js'],
fallback: [path.join(__dirname, 'node_modules')]
},
resolveLoader: {
fallback: [path.join(__dirname, 'node_modules')]
}
};
package.json中react既是依赖项又是peerDependency,并且lib/index.js是入口点,因此我将库构建到lib/index.js中。
然后我从模块目录运行npm link
,并从app
目录运行npm link my-module
。但是,它仍然会加载两个不同版本的React,从而导致问题。如何使我的模块使用与应用程序相同的react?
我阅读了这篇关于peerDepenencies和npm link的链接:https://webpack.github.io/docs/troubleshooting.html#npm-linked-modules-doesn-t-find-their-dependencies
但是,正如您所看到的,我已经将回退添加到配置中(不清楚是哪个存储库,因此我将其添加到了两个存储库中)。我在这里做错了什么?