如何在使用webpack发布NPM模块(React组件)时正确使用peerDependencies并与npm link一起使用?

5

我希望发布一个依赖于reactmodule。我想在我的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

但是,正如您所看到的,我已经将回退添加到配置中(不清楚是哪个存储库,因此我将其添加到了两个存储库中)。我在这里做错了什么?

1个回答

1
我的错误是忘记在安装库时构建模块中添加“prepublish”脚本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接