注册表强制安装 npm 而不是创建符号链接?"/>
如何从注册表强制安装 npm 而不是创建符号链接?
我有一个 monorepo,其结构如下图所示。
my-app
取决于 my-lib
。 my-lib
发布到注册表。当我运行 npm install
时,会在 my-lib
中创建指向 node_modules
目录的符号链接,而不是从注册表中下载 my-lib
,如下图所示:
root
|--package.json
|
|--node_modules
| |--symlink to my-lib directory
|
|--my-app
| |--package.json
| | |--"dependencies":{"my-lib": "1.0.0"}
| |
| |--node_modules
| |--nothing here
|
|--my-lib
|--package.json
| |--"version": "1.0.0"
|
|--node_modules
|--nothing here
如何强制 npm 从注册表安装
my-lib
1.0.0?
我想要这种行为的原因是因为有时
my-lib
仍在开发中,我不希望我的应用程序使用 my-lib
中的开发代码。我希望我的应用程序使用 my-lib
. 的发布版本
如果 npm 无法实现这种行为,我也很乐意使用纱线。
回答如下:您可以通过在
enableTransparentWorkspaces
配置文件中将false
设置为.yarnrc.yml
来使用Yarn 2+做到这一点:
enableTransparentWorkspaces: false
禁用此选项意味着它将始终解析为本地工作区(如果版本匹配)的默认行为将始终解析为注册表。这也意味着如果你想将包解析到本地工作区,你将不得不使用
workspace:
协议。
更多信息可以在纱线文档中找到。
更多推荐
如何从注册表强制安装 npm 而不是创建符号链接?
发布评论