在嵌套子文件夹中安装npm包的最正确方法是什么?
my-app
/my-sub-module
package.json
package.json
当npm install在my-app中运行时,在/my-sub-module中自动安装包的最佳方法是什么?
在嵌套子文件夹中安装npm包的最正确方法是什么?
my-app
/my-sub-module
package.json
package.json
当npm install在my-app中运行时,在/my-sub-module中自动安装包的最佳方法是什么?
当前回答
如果您知道嵌套子目录的名称,我更喜欢使用post-install。在package.json:
"scripts": {
"postinstall": "cd nested_dir && npm install",
...
}
其他回答
添加Windows支持snozza的答案,以及跳过node_modules文件夹如果存在。
var fs = require('fs')
var resolve = require('path').resolve
var join = require('path').join
var cp = require('child_process')
// 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 (!mod === 'node_modules' && !fs.existsSync(join(modPath, 'package.json'))) return
// Determine OS and set command accordingly
const cmd = /^win/.test(process.platform) ? 'npm.cmd' : 'npm';
// install folder
cp.spawn(cmd, ['i'], { env: process.env, cwd: modPath, stdio: 'inherit' })
})
如果你在你的系统上找到了实用程序,你可以尝试在你的应用程序根目录下运行以下命令: 找到。! -path "*/node_modules/*" -name "包。-execdir NPM install \;
基本上,找到所有的包。Json文件,并在该目录下运行NPM install,跳过所有node_modules目录。
[macOS、Linux用户]:
我创建了一个bash文件来安装项目和嵌套文件夹中的所有依赖项。
find . -name node_modules -prune -o -name package.json -execdir npm install \;
解释:在根目录中,排除node_modules文件夹(即使在嵌套文件夹中),找到包含包的目录。Json文件,然后运行NPM install命令。
如果你只是想找到指定的文件夹(例如:abc123, def456文件夹),运行如下:
find ./abc123/* ./def456/* -name node_modules -prune -o -name package.json -execdir npm install \;
如果您知道嵌套子目录的名称,我更喜欢使用post-install。在package.json:
"scripts": {
"postinstall": "cd nested_dir && npm install",
...
}
只是作为参考,以防人们遇到这个问题。你现在可以:
添加包。Json到子文件夹中 在main package.json中安装这个子文件夹作为reference-link:
NPM安装——保存路径/到/my/子文件夹