- bounty将在5天后过期**。回答此问题可获得+500声望奖励。Sam Hasler希望引起更多人对此问题的关注:如果没有一种方法可以自动"跳过"或避免这种情况发生,至少有人可以解释为什么会发生这种情况,这样我们就可以重新调整我们的项目来避免它吗?
我有一个项目,其根文件是以下简化的package.json
文件:
- 包. json**
{
"name": "parent-project",
"dependencies": {
...
}
}
在我们称为child-project
的子文件夹中,另一个package.json
位于:
- 子项目/包. json**
{
"name": "child-project",
"dependencies": {
...
}
}
我所依赖的一些代码使用命令npm --prefix ./child-project install
在child-project
中安装依赖项,但是,这总是会产生不希望的副作用,即像这样修改child-project/package.json
:
{
"name": "child-project",
"dependencies": {
...
"parent-project": "file:.." // <- I don't want this!
}
}
当我执行cd ./child-project && npm install
时,一切正常,child-project/package.json
保持不变,所以我的直觉是它与--prefix
有关,但关于--prefix
的文档非常模糊。
是否有办法禁用此行为并防止NPM更改child-project/package.json
?
1条答案
按热度按时间y4ekin9u1#
看起来
--prefix
有一些问题。然而,我没有发现任何问题,而我正在测试不同的模块,其中有子包。
因此,根据一个npm贡献者的说法,它将在未来的版本中被重构或删除,这意味着至少现在使用它不是最好的选择,所以我建议你通过传统的方式,避免使用
--prefix
。我想我们会把它作为一个wontfix来关闭,因为--前缀不是最好的提升标志,我们最终确实想重构或删除它,但现在我们至少不应该提升它。