我将我的第一个应用程序部署到AWS Elastic Beanstalk并且它无法运行,因为我的开发计算机上的某些依赖项已在本地安装,因此我的应用程序中缺少这些应用程序'# s node_module文件夹,而不是我上传到AWS。
有没有办法告诉我的应用程序使用哪些不在package.json或node_modules中的依赖项?
由于
答案 0 :(得分:0)
尝试在终端npm list -g --depth=0
上运行此命令。它将返回所有全局安装的模块,然后您可以手动检查项目中需要哪些模块。
答案 1 :(得分:0)
作为粗略的第一轮信息收集,您可以使用简单的grep
找到项目中所需的所有模块:
grep -R --exclude-dir node_modules --include '*.js' require .
要仅提取模块名称并删除重复项,您可以通过cut
和sort
管道输出结果:
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