我的本地模块A使用npm link
链接到本地模块B.
并且模块B作为依赖性做出反应。
当模块A需要响应时,找不到模块。
如果这个'正常'包(没有npm链接)模块A在安装模块B时会在node_modules
下得到反应。
使用npm link
时是否有任何方法可以要求模块A做出反应,而无需手动将其列为依赖项?
答案 0 :(得分:2)
简答:否。
更长的答案: npm link
只需通过全局文件夹在模块A的node_modules
中创建符号链接。它没有像npm install
那样提供任何依赖性解析/安装/展平。例如,如果您同时在模块A和B上进行开发,这很有用;对模块B中已安装软件包的更改不需要在A中重新解析/安装/展平软件包树。
在运行A并有效使用A中B的依赖关系时,您可能会弄乱NODE_PATH
环境变量以指定模块B的node_modules
作为require
的源。 / p>
但是,请重新考虑为什么要创建这样的隐形依赖项。您正在选择打破模块的封装。如果模块A需要react
,则A需要在package.json中指定。当您稍后决定将模块A用于其他不包含B的项目时,没有问题。当您决定从模块B中删除react
时,您不会破坏A。