一尘不染

为嵌套文件夹运行npm install的最佳方法?

node.js

npm packages在嵌套子文件夹中安装的最正确方法是什么?

my-app
  /my-sub-module
  package.json
package.json

什么是有最好的方式packages/my-sub-module,当被自动安装npm install在运行my-app


阅读 635

收藏
2020-07-07

共1个答案

一尘不染

如果要运行单个命令以将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项目结构(包括嵌套的组件和package.json文件)。

如建议的那样,您还可以使用bash脚本实现相同的目的。

编辑:使代码在Windows中工作

2020-07-07