我有两个本地节点包,我们称之为pack1
和pack2
。现在,pack2
取决于pack1
,但pack1
未发布到npm,而是仅在本地链接(使用npm link
)。 pack2
也链接在一起,以确保我使用最新的本地更改。但是,npm list -g
给了我类似的东西:
├─┬ pack1@1.0.0 -> /path/to/pack1
... many lines ...
├─┬ pack2@0.1.4 -> /path/to/pack2
│ ├── UNMET DEPENDENCY pack1@1.0.0
奇怪的是,由于pack1
实际上是一个自制生成器,而yo pack1
正在运行,所以它被拾起了。
在npm install
中尝试pack2
会引发错误,指出找不到pack1
。
我怎样才能让它发挥作用?我觉得我错过了一些非常基本的东西。
答案 0 :(得分:1)
您需要执行以下npm link
命令序列。
$ cd pack1
$ npm link # make this linkable
$ cd pack2
$ npm link pack1 # bring in pack1 via link--did you do this??
要检查所有设置是否正确:
$ cd pack2
$ ls -l node_modules/pack1
这应该显示pack1的符号链接。如果存在,但仍然不需要pack1,那么pack1可能存在问题,例如package.json中没有index.js
文件或main
条目。
答案 1 :(得分:0)
就我而言,我必须:
npm uninstall pack1
)完全卸载 npm link pack1
来自“ pack2”,然后npm install pack1
所有其他步骤组合均无效,并且在任何地方都找不到卸载或重新安装的信息。希望这可以帮助其他遇到此问题的人。