在嵌套子文件夹中安装npm packages
的最正确方法是什么?
my-app
/my-sub-module
package.json
package.json
当npm install
在my-app
中运行时,让/my-sub-module
中的packages
自动安装的最佳方式是什么?
在嵌套子文件夹中安装npm packages
的最正确方法是什么?
my-app
/my-sub-module
package.json
package.json
当npm install
在my-app
中运行时,让/my-sub-module
中的packages
自动安装的最佳方式是什么?
如果您想运行单个命令在嵌套的子文件夹中安装npm软件包,可以通过根目录中的npm
和main package.json
运行脚本.脚本将访问每个子目录并运行npm install
.
下面是一个.js
脚本,将实现预期的结果:
var fs = require('fs');
var resolve = require('path').resolve;
var join = require('path').join;
var cp = require('child_process');
var os = require('os');
// get library path
var lib = resolve(__dirname, '../lib/');
fs.readdirSync(lib).forEach(function(mod) {
var modPath = join(lib, mod);
// ensure path has package.json
if (!fs.existsSync(join(modPath, 'package.json'))) {
return;
}
// npm binary based on OS
var npmCmd = os.platform().startsWith('win') ? 'npm.cmd' : 'npm';
// install folder
cp.spawn(npmCmd, ['i'], {
env: process.env,
cwd: modPath,
stdio: 'inherit'
});
})
请注意,这是一篇StrongLoop篇文章中的一个例子,专门讨论了模块化node.js
项目 struct (包括嵌套组件和package.json
个文件).
正如所建议的,您也可以通过bash脚本实现同样的功能.
编辑:使代码在Windows中工作