npm packages在嵌套子文件夹中安装的最正确方法是什么?
npm packages
my-app /my-sub-module package.json package.json
什么是有最好的方式packages中/my-sub-module,当被自动安装npm install在运行my-app?
packages
/my-sub-module
npm install
my-app
如果要运行单个命令以将npm软件包安装在嵌套的子文件夹中,则可以通过npm和main package.json在根目录中运行脚本。该脚本将访问每个子目录并运行npm install。
npm
package.json
下面是一个.js可以达到预期效果的脚本:
.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项目结构(包括嵌套的组件和package.json文件)。
node.js
如建议的那样,您还可以使用bash脚本实现相同的目的。
编辑:使代码在Windows中工作