npm run start 在 Windows 之外的不同操作系统上找不到 node_modules 文件夹
Posted
技术标签:
【中文标题】npm run start 在 Windows 之外的不同操作系统上找不到 node_modules 文件夹【英文标题】:npm run start won't find node_modules folder on different OS aside Windows 【发布时间】:2021-08-20 07:54:41 【问题描述】:我在 Windows 10 上使用 Hapi 制作了一个节点 JS 应用程序。在本地测试后,脚本start
将运行没有任何问题。这是 package.json 中的启动脚本
"scripts":
"start": "nodemon -e * ./src/server.js"
我正在尝试在 Centos 7 中部署这个应用程序。从 github 克隆后,设置 postgreSQL DB & Table,设置 .env 文件,当我运行npm run start
命令时,控制台会弹出一个像这样的错误(错误取自 AWS 上的 Ubuntu 实例,但每个基于 linux 的操作系统的错误都是相同的)
[nodemon] starting `node node_modules nodemon.json package-lock.json package.json readme.MD src views /src/server.js`
internal/modules/cjs/loader.js:1032
throw err;
^
Error: Cannot find module '/home/ubuntu/application_nodejs/node_modules'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1029:15)
at Function.Module._load (internal/modules/cjs/loader.js:898:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
code: 'MODULE_NOT_FOUND',
requireStack: []
[nodemon] app crashed - waiting for file changes before starting...
我尝试在 Heroku、在 Ubuntu 和 AMI 2 上运行的 AWS EC2 以及我的另一台 Windows 10 PC 上复制该问题。在 Windows 10 上,运行上述命令后,该应用程序将轻松运行。在每个基于 linux 的操作系统上,它都会返回相同的错误。当我尝试使用node ./src/server.js
运行它时,应用程序会启动。
我的问题有什么解决办法吗?我怀疑它与文件/文件夹命名或启动脚本本身有关。但我还没有找到任何正确的解决方案。提前谢谢!
【问题讨论】:
【参考方案1】:您需要引用*
:nodemon -e "*" src/server.js
。
与 Windows 的 cmd 不同,Linux shell 扩展了通配符(正如您在实际运行的命令中看到的,在错误上方)。在 Windows 中,由您调用的程序来扩展通配符。因为这是你在 nodemon 的情况下想要的,它在 Windows 上“偶然”工作而没有转义星号,因为它对 cmd 没有任何特殊含义,但在 Linux 中它会被扩展,这不是你想要的。
【讨论】:
以上是关于npm run start 在 Windows 之外的不同操作系统上找不到 node_modules 文件夹的主要内容,如果未能解决你的问题,请参考以下文章
Vue报错:npm run start npm ERR! missing script: start
Next.js 中的 npm run dev 和 npm run start 有啥区别?
“npm run dev”和“npm start”之间的区别