【问题标题】:How to properly use peerDependencies when publishing an NPM module (React component) with webpack? And use with npm link?使用 webpack 发布 NPM 模块(React 组件)时如何正确使用 peerDependencies?并与 npm 链接一起使用?
【发布时间】:2016-06-02 16:00:13
【问题描述】:

我想发布依赖于reactmodule。我想在我的app 项目中使用这个模块,它也依赖于反应。我有以下 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 同时作为依赖和 peerDependency 做出反应,并以 lib/index.js 作为入口点,所以我将库构建到 lib/index.js。

然后我从模块目录运行npm link,从app 目录运行npm link my-module。但是,它最终仍然会加载两个不同版本的 React,从而导致问题。如何让我的模块使用与应用相同的反应?

我阅读了有关 peerDepenencies 和 npm 链接的链接:https://webpack.github.io/docs/troubleshooting.html#npm-linked-modules-doesn-t-find-their-dependencies

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

【问题讨论】:

    标签: reactjs npm dependencies webpack


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-12
      • 2016-10-09
      • 2015-09-06
      • 2019-07-31
      • 2020-06-21
      • 1970-01-01
      • 2016-10-12
      • 2018-04-26
      相关资源
      最近更新 更多