首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘npm安装<folder>`的行为与’`cd <folder> && npm安装‘不同。

‘npm安装<folder>`的行为与’`cd <folder> && npm安装‘不同。
EN

Stack Overflow用户
提问于 2014-07-23 20:31:11
回答 1查看 689关注 0票数 1

我有一个这样的源树:

代码语言:javascript
复制
myapp
├── nodestuff1
|    └── package.json
└── nodestuff2
     └── package.json

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

代码语言:javascript
复制
"prepublish": "npm install ../nodestuff2"

nodestuff2 2/Package.json包括以下内容:

代码语言:javascript
复制
"devDependencies": {"uglify-js": "2.3.x"}

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

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

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

这是个虫子吗?有没有更好的解决办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-23 20:44:57

首先,要理解"cd项目& npm安装“的语义意思是”安装某个项目的dependenciesdevDependencies,以便我可以运行和/或开发它“,而不是"npm ./devDependencies项目”,意思是“在当前目录中安装某个项目,这样我就可以从我的项目或者从没有安装devDependencies的repl中使用它”。这对我个人来说是有意义的,但对你来说,这可能是直觉,也可能不是直觉,但无论是哪种情况,npm都是这样运作的。

现在,对于您的包,如果我理解了当您将nodestuff2发布到npm时,您要做的是在nodestuff1中进行预包。别干那事。相反,只需将nodestuff2列为dependencies of nodestuff1 in nodestuff1/package.json即可。你想在这里做些不寻常的事吗?如果你提供了你想要完成的更大的背景,人们就会更容易发布答案。我的印象是,你的工作违背了国家预防机制,但你没有提供足够的环境让我真正评估你正在做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24920385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档