작업중 인 node.js 스크립트에서 모든 node.js 모듈 (npm을 사용하여 설치)을 명령 줄에 인쇄하고 싶습니다. 어떻게해야합니까?
console.log(__filename);
//now I want to print all installed modules to the command line. How can I do this?
답변
npm ls 사용 (json 출력도 있음)
스크립트에서 :
test.js :
function npmls(cb) {
require('child_process').exec('npm ls --json', function(err, stdout, stderr) {
if (err) return cb(err)
cb(null, JSON.parse(stdout));
});
}
npmls(console.log);
운영:
> node test.js
null { name: 'x11', version: '0.0.11' }
답변
전체 TREE없이 전체적으로 설치된 패키지에만 관심이있는 경우 :
npm -g ls --depth=0
또는 로컬 (생략 -g) :
npm ls --depth=0
답변
전 세계적으로 설치된 모든 타사 모듈 목록, 콘솔에 쓰기 :
npm -g ls
답변
어떤 OS에서도
npm -g list
그리고 그게 다야
답변
일반적으로 CLI (Command Line Interface )를 통해 또는 API를 사용하는 응용 프로그램에서 설치된 패키지를 나열하는 두 가지 방법이 있습니다 .
두 명령 모두 stdout
트리 구조에 설치된 모든 버전의 패키지와 해당 패키지에 인쇄됩니다 .
CLI
npm list
-g
(global) 플래그를 사용하여 전체적으로 설치된 모든 패키지를 나열하십시오. --depth=0
플래그를 사용하여 종속성이 아닌 최상위 패키지 만 나열 하십시오 .
API
귀하의 경우, 스크립트 내에서 이것을 실행하려면 API를 사용해야합니다. 문서에서 :
npm.commands.ls(args, [silent,] callback)
에 인쇄하는 stdout
것 외에도 데이터가 콜백으로 전달됩니다.
답변
왜 그들을 잡아 dependencies
에 package.json
?
물론, 이것은 당신이 실제로 저장 한 것만 줄 것이지만, 어쨌든 그렇게해야합니다.
console.log(Object.keys(require('./package.json').dependencies));
답변
for package in `sudo npm -g ls --depth=0 --parseable`; do
printf "${package##*/}\n";
done