我可以告诉我的应用程序使用哪些全局节点依赖项吗?

时间:2017-04-16 17:04:12

标签: node.js npm

我将我的第一个应用程序部署到AWS Elastic Beanstalk并且它无法运行,因为我的开发计算机上的某些依赖项已在本地安装,因此我的应用程序中缺少这些应用程序'# s node_module文件夹,而不是我上传到AWS。

有没有办法告诉我的应用程序使用哪些不在package.json或node_modules中的依赖项?

由于

2 个答案:

答案 0 :(得分:0)

尝试在终端npm list -g --depth=0上运行此命令。它将返回所有全局安装的模块,然后您可以手动检查项目中需要哪些模块。

答案 1 :(得分:0)

作为粗略的第一轮信息收集,您可以使用简单的grep找到项目中所需的所有模块:

grep -R --exclude-dir node_modules --include '*.js' require .

要仅提取模块名称并删除重复项,您可以通过cutsort管道输出结果:

 grep -R --exclude-dir node_modules --include '*.js' require . |
     cut -d '(' -f2 |
     cut -d "'" -f2 |
     sort -u

然后,您可以过滤结果,并仅通过将其与npm list -g的输出进行比较来打印全局安装的内容。 comm命令派上用场:

grep -R --exclude-dir node_modules --include '*.js' require . |
    cut -d '(' -f2 |
    cut -d "'" -f2 |
    sort -u > required.txt

npm list -g --depth=0 2> /dev/null |
    grep @ |
    cut -d ' ' -f2 |
    cut -d@ -f1 |
    sort -u > global_install.txt

comm -1 -2 required.txt global_install.txt