首页 > 解决方案 > 如何防止在 Node.js 中的包之外使用相对路径?

问题描述

假设该项目在同一级别上有 2 个包:

我想阻止 package1 中“package2 文件”的任何相对路径导入,反之亦然。例如不允许在 package1/app/test1.js 中导入 require(../../package2/app/test2.js)。

我们可以编写一些静态分析器来进行这样的检查,但想知道是否有任何现有的工具可以解决这个问题?

标签: node.jsrequirejsnode-modules

解决方案


这是一种代码味道,表明您的两个包确实不是独立的。处理跨包依赖的正确方法是将其发布package1并包含在 的依赖中,并通过在其目录中运行package2使其可用。package2npm install

在开发这两个包时,您可以避免发布模块,方法是npm linkpackage1' 目录中运行以使其在全局包缓存中可用,并使其可用于package2,您可以npm link package1package2' 目录运行。


推荐阅读