繁体   English   中英

npm从父目录安装

[英]npm install from the parent directory

我有一个像这样的目录结构: /a/b/c

目录c包含package.json ,应包含node_modules
如何我执行npm install的目录里面a

我试过这样的方法: npm --prefix b/c install b/c但是这样,所有的符号链接都是直接在c里面创建的,而不是默认的node_modules/.bin

有没有办法实现这一目标?

节点:6.2.2
npm:3.10.2

使用预先在安装钩子的NPM package.json你内a目录有可能在这种情况下的最佳选择。

scripts: {
    preinstall: `cd b/c && npm install`
}

这样在目录a运行npm install也将执行c目录安装并提供无缝的开发体验。

有点矫枉过正但可能有用......

在递归的帮助下,您可以找到node_modules

您可以在父目录中运行此文件以查找node_modules中的node_modules并传递npm参数。

注意 :在Windows上测试过

 var child_process = require('child_process'); var fs = require('fs'); var path = require('path'); var safe = 0; let args = process.argv.splice(2).toString().replace(/,/g ,' '); function recurse(_path){ safe ++; if(safe > 5000){ console.log('directory may be too large') return } if(/node_modules$/.test(_path)){ let cwd = path.resolve(__dirname ,_path) console.log('found node_modules at '+cwd) child_process.exec(`start cmd.exe /k npm ${args}`,{cwd}) return } let directoryList = fs.readdirSync(_path); directoryList.forEach(function(nextDir){ if(fs.statSync(_path+'/'+nextDir).isFile()){ return } if(/^\\./.test(nextDir)){ //.folder beginging with . return } recurse(_path+'/'+nextDir); }) } recurse('./' ) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM