gpt4 book ai didi

node.js - `npm install ` 不是 't behave the same as ` cd && npm install`

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:56 26 4
gpt4 key购买 nike

我有一个像这样的源树:

myapp
├── nodestuff1
| └── package.json
└── nodestuff2
└── package.json

nodestuff1/package.json 包含以下内容:

"prepublish": "npm install ../nodestuff2"

nodestuff2/package.json 包含以下内容:

"devDependencies": {"uglify-js": "2.3.x"}

我的工作流程应该是cd myapp/nodestuff1 && npm install,它应该首先安装nodestuff2,然后安装nodestuff1。然而...

  • myapp/nodestuff2 中运行 npm install 会安装 devDependency,而
  • 运行npm install ../nodestuff2不会安装devDependency。

现在,我将 prepublish 脚本更改为 cd 到 nodestuff2 并在那里运行 npm install,然后 cd 返回到 nodestuff1 并运行 npm install ../nodestuff2,以便将其复制到 nodestuff1/node_modules

这是一个错误吗?有更好的解决办法吗?

最佳答案

首先,了解“cd someproject && npm install”的语义意味着“安装 someproject 的 dependencydevDependency,以便我可以运行它和/或开发它”,而不是“npm install ../someproject”,这意味着“在当前目录中安装 someproject,以便我可以从我的项目或 repl 中使用它”,后者不会安装 devDependency。这些对我个人来说很有意义,但对您来说可能直观,也可能不直观,但无论哪种情况,npm 都是这样工作的。

现在,对于你的包,如果我理解你想要做的就是当你将其发布到 npm 时,在nodestuff1 中预捆绑nodestuff2。不要那样做。相反,只需将nodestuff2列为nodestuff1/package.json中nodestuff1的依赖项即可。你想在这里做一些不寻常的事情吗?如果您提供您想要完成的任务的更大背景,那么人们会更容易发布答案。我的印象是,您正在违背 npm 的原则工作,但您没有提供足够的背景信息让我真正评估您正在做的事情。

关于node.js - `npm install <folder>` 不是 't behave the same as ` cd <folder> && npm install`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24920385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com