json 如何禁用'npm install --prefix'的本地包依赖?

pprl5pva  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(124)
    • 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 installchild-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

y4ekin9u

y4ekin9u1#

看起来--prefix有一些问题。
然而,我没有发现任何问题,而我正在测试不同的模块,其中有子包。
因此,根据一个npm贡献者的说法,它将在未来的版本中被重构或删除,这意味着至少现在使用它不是最好的选择,所以我建议你通过传统的方式,避免使用--prefix
我想我们会把它作为一个wontfix来关闭,因为--前缀不是最好的提升标志,我们最终确实想重构或删除它,但现在我们至少不应该提升它。

相关问题