node.js - 如何防止在 Node.js 中的包之外使用相对路径?
问题描述
假设该项目在同一级别上有 2 个包:
- 包1
- 应用程序
- test1.js
- 包.json
- 应用程序
- 包2
- 应用程序
- test2.js
- 包.json
- 应用程序
我想阻止 package1 中“package2 文件”的任何相对路径导入,反之亦然。例如不允许在 package1/app/test1.js 中导入 require(../../package2/app/test2.js)。
我们可以编写一些静态分析器来进行这样的检查,但想知道是否有任何现有的工具可以解决这个问题?
解决方案
这是一种代码味道,表明您的两个包确实不是独立的。处理跨包依赖的正确方法是将其发布package1
并包含在 的依赖中,并通过在其目录中运行package2
使其可用。package2
npm install
在开发这两个包时,您可以避免发布模块,方法是npm link
在package1
' 目录中运行以使其在全局包缓存中可用,并使其可用于package2
,您可以npm link package1
从package2
' 目录运行。
推荐阅读
- python - 将excel表复制到另一个或仅使用python删除其行
- python - 圆角 Tkinter / Canvas Tkinter 上的透明图像
- ansible - Vars_prompt 注册结果以将其重新用作变量
- java - 如何以最佳方式在休眠中为以下条件创建条件查询
- javascript - Web Audio API 上的离线源
- docker - docker daemon 意外退出
- python - 有人可以通过在此处指出并更正错误来帮助我吗,因为我想每 24 小时重复一次该消息?
- vue.js - 如何在我自己的组件 vuejs 中使用模板
- javascript - 在 wordpress 网站上选择输入字段时,Android 键盘打开然后立即关闭
- javascript - Puppeteer 无法在 heroku 上找到选择器,但在本地工作