gpt4 book ai didi

node.js - 正确配置依赖于本地包的NPM包

转载 作者:搜寻专家 更新时间:2023-10-31 22:34:22 25 4
gpt4 key购买 nike

我有这三个本地 npm 包:C:\projects\AC:\projects\BC:\projects\mainMain 是使用 Webpack 构建的 React 应用程序。 Main依赖于AB,同时A依赖于B。我们有自己的“全局”包管理器,它保证包将位于同一父文件夹中。

我想适合这些:

  1. Node(和 webpack)的 require 将解析本地包

  2. 每次更改 AB 时,我都不需要在 Mainnpm install >

我在 Mainpackage.json 中做了这个:

....
"dependencies": {
"A": "file:../A",
"B": "file:../B",
"react": ...
.........

但是遇到了一个奇怪的问题:npm 并没有在AB 的node_modules 中安装所有的包,所以Webpack build失败。我每次都需要运行 npm install

我用谷歌搜索并找到了 linklocal ,它将所有本地包替换为符号链接(symbolic link)。但是遇到了另一个问题:

linklocal does not install dependencies of linked dependencies, as such you typically end up installing dependencies of linked dependencies twice: once during npm install, then again after linklocal

所以我在 postinstall 脚本中再次运行了 linklocalnpm install 。但是 npm@3 没有对符号链接(symbolic link)文件夹做任何事情:

npm WARN update-linked node_modules/A needs updating to 1.0.0 from 1.0.0 but we can't, as it's a symlink

然后我决定修改 postinstall 以转到每个符号链接(symbolic link)模块并从那里运行 npm install。乍一看它是有效的:安装运行良好,以及 webpack 绑定(bind)。但是 Webpack 开始捆绑 React 的两个副本(这是被禁止的)。

如何正确配置我的包?

最佳答案

在包 A 和包 B 中,您可以有一个执行 webpackpreinstall 脚本。这应该解决所有的依赖关系。
在您的主包上,您应该链接到包 A 和 B 的 dist(build) 文件夹。
还要检查这个库 wml ,它可以帮助您保持本地依赖项的同步。

package.json:

“脚本”:{
“预安装”:“网络包”
}

关于node.js - 正确配置依赖于本地包的NPM包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40161607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com