phi*_*ipp 11 node.js npm npm-workspaces
我使用的是node/npmworkspaces
的功能,布局是这样的:
.\n+-- package.json\n`-- packages\n `-- p1\n `-- package.json\n `-- p2\n `-- package.json\n
Run Code Online (Sandbox Code Playgroud)\n./package.json\n\n{\n \xe2\x80\xa6\n "workspaces": [\n "./packages/*"\n ],\n \xe2\x80\xa6\n "dependcies": { \xe2\x80\xa6 }\n \xe2\x80\xa6\n}\n
Run Code Online (Sandbox Code Playgroud)\nnpm install
一切都进展顺利。但现在我想将包添加p1
为 package 的依赖项p2
。但我该怎么做呢?我天真地尝试过:
./packages/p2/package.json\n\n{\n \xe2\x80\xa6\n "dependencies": {\n "p1": "*"\n }\n \xe2\x80\xa6\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n但这会在安装时产生错误,告诉我p1
找不到注册表。
Kly*_*ton 15
更新 - 使用 npm cli
\n从项目根目录运行
npm i ./packages/p1 -w packages/p2\n
Run Code Online (Sandbox Code Playgroud)\n这./
是必须的,否则 npm 会将安装混淆为从 npm 注册表安装和从本地目录安装。
手动解决方法
\n通过在p2 package.json 中提供p1\ 的相对路径来手动添加p1作为本地依赖项,因此在您的示例中:
./packages/p2/package.json\n\n{\n \xe2\x80\xa6\n "dependencies": {\n "p1": "file:../p1"\n }\n \xe2\x80\xa6\n}\n
Run Code Online (Sandbox Code Playgroud)\n然后您需要npm install
在p2包中运行。
我从 LinkedIn 的一篇文章中找到了这个解决方案,当我使用 Lerna 启动 JavaScript monorepo 时,我希望自己知道这些事情。
\n 归档时间: |
|
查看次数: |
13878 次 |
最近记录: |