我有一个NPM包(包A),它会使用自身的最新稳定版本进行编译。它通过中间的Grunt任务(包B)来实现,该任务本身依赖于包A。因此,依赖关系链如下:
包A -> 包B(作为devDependency)-> 包A(作为dependency)
然而,当通过npm install安装包A时,NPM不会将包A安装为包B的依赖项,可能是出于设计考虑 - 我认为它试图防止循环依赖,尽管因为包B只是一个devDependency,它不会被安装在子包A上。
那么,安装子包A的最少hacky /推荐方式是什么?我的第一个解决方案是添加一个postinstall脚本,只需运行cd node_modules/package-B && npm install package-A,但这会破坏postinstall的CWD并非始终为包的根目录的问题。
包A -> 包B(作为devDependency)-> 包A(作为dependency)
然而,当通过npm install安装包A时,NPM不会将包A安装为包B的依赖项,可能是出于设计考虑 - 我认为它试图防止循环依赖,尽管因为包B只是一个devDependency,它不会被安装在子包A上。
那么,安装子包A的最少hacky /推荐方式是什么?我的第一个解决方案是添加一个postinstall脚本,只需运行cd node_modules/package-B && npm install package-A,但这会破坏postinstall的CWD并非始终为包的根目录的问题。