假设该项目在同一级别上有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的目录。

09-25 15:34