假设该项目在同一级别上有2个软件包:
包装1
应用程式
test1.js
package.json
包装2
应用程式
test2.js
package.json
我想防止package1内的“ package2文件”的任何相对路径导入,反之亦然。例如,禁止在package1 / app / test1.js中导入require(../../ package2 / app / test2.js)。
我们可以编写一些静态分析器来进行这种检查,但是想知道是否有任何现有工具可以解决此问题?
最佳答案
这是一种代码味道,表明您的两个软件包确实不是自包含的。处理跨包依赖关系的正确方法是发布package1
并将其包含在package2
依赖关系中,并通过在其目录中运行package2
将其提供给npm install
使用。
在开发这两个程序包时,可以通过在npm link
的目录中运行package1
使其在全局程序包缓存中可用,并使其在package2
中可用,从而避免发布模块。从npm link package1
的目录。