我有一个这样的源树:
myapp
├── nodestuff1
| └── package.json
└── nodestuff2
└── package.jsonnodestuff1/package.json包括以下内容:
"prepublish": "npm install ../nodestuff2"nodestuff2 2/Package.json包括以下内容:
"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。
这是个虫子吗?有没有更好的解决办法?
发布于 2014-07-23 20:44:57
首先,要理解"cd项目& npm安装“的语义意思是”安装某个项目的dependencies和devDependencies,以便我可以运行和/或开发它“,而不是"npm ./devDependencies项目”,意思是“在当前目录中安装某个项目,这样我就可以从我的项目或者从没有安装devDependencies的repl中使用它”。这对我个人来说是有意义的,但对你来说,这可能是直觉,也可能不是直觉,但无论是哪种情况,npm都是这样运作的。
现在,对于您的包,如果我理解了当您将nodestuff2发布到npm时,您要做的是在nodestuff1中进行预包。别干那事。相反,只需将nodestuff2列为dependencies of nodestuff1 in nodestuff1/package.json即可。你想在这里做些不寻常的事吗?如果你提供了你想要完成的更大的背景,人们就会更容易发布答案。我的印象是,你的工作违背了国家预防机制,但你没有提供足够的环境让我真正评估你正在做的事情。
https://stackoverflow.com/questions/24920385
复制相似问题