当我们使用npm通过命令express
安装诸如npm install express --save
之类的单个软件包时,npm不仅安装express
,还着眼于node_modules/express/package.json
并安装其依赖性。然后,它将一遍又一遍地查看那些依赖项的package.json
,直到安装了整个依赖关系图,对吗?
我正在开发一个自定义库,并使用npm link
创建符号链接并测试使用的应用程序中的更改。这个问题是我的自定义库(叫它@mylib/foo
)依赖于另一个npm包(让我们说它的lodash
)。我看到的问题是取消链接npm install
,该链接将安装@mylib/foo
,然后在其旁边安装lodash
,npm link
创建符号链接并完成。这意味着lodash
永远不会安装在正在使用的应用程序中,并且由于找不到lodash
而导致构建失败。
当我在Google上搜索以找到说明如何使用npm link
的教程或文章时,它们似乎都显示了一个过于简化的自定义库,没有任何依赖关系,也根本没有谈论如何获得这种情况去工作。我能够使它工作的唯一方法是,首先将我的@mylib/foo
软件包发布到注册表中,然后像正常的依赖项一样安装它。