Jer*_*son 7 node.js npm monorepo peer-dependencies
我有一个包含许多微服务的 monorepo。我想让任何需要它的微服务都可以使用一些库类型的函数/类。但是,如果该库包声明了对等依赖项,则在从依赖于该库的事物中运行代码时将找不到对等依赖项。
考虑这个回购结构:
foo)
foo)foo, 和some-library)
some-library)foosome-library 将是一个符号链接 ../../lib/some-library运行时node services/some-service/index.js,您将收到错误“无法找到模块 'foo'”,来自lib/some-library/index.js.
可能发生这种情况是因为节点只查看祖先目录中的lib/some-library/node_modules任何node_modules文件夹。但是由于此代码是从services/some-service(作为工作目录)运行的,并且由于 中的符号链接services/some-service/node_modules,我希望它可以工作。
这是一个您可以轻松克隆以查看问题的存储库:https : //github.com/jthomerson/example-local-dependency-problem
git clone git@github.com:jthomerson/example-local-dependency-problem.git
cd example-local-dependency-problem
cd services/some-service
npm install
node index.js
Run Code Online (Sandbox Code Playgroud)
我只看到两种解决方案:
这些都不是一个真正好的解决方案,因为它不允许每个服务具有不同版本的依赖项,因此意味着如果依赖项的本地版本(或库的版本)被碰撞,所有使用该库的服务然后让它们的依赖版本同时发生碰撞,这使得它们更加脆弱,因为它们都被捆绑在一起。
添加标志怎么样--preserve-symlinks?例如:
node --preserve-symlinks index.js
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1656 次 |
| 最近记录: |