执行npm run start启动项目出现cross-env相关报错如何解决
核心原因
执行npm run start时控制台只打印cross-env NODE_ENV=development API_ENV=development PERMISSIONS=disabled node server就退出、没有后续启动日志,基本逃不过三类问题:
- 本地没装
cross-env依赖,系统找不到可执行命令 - 依赖安装不完整,或者启动脚本配置的入口路径不对
- Node/npm版本和项目要求不匹配,或者系统脚本执行权限受限
排查修复步骤
按顺序操作即可,不用跳步:
- 第一步先校验
cross-env依赖状态
打开项目根目录的package.json,在dependencies和devDependencies里找cross-env字段。如果找不到,直接执行npm install cross-env --save-dev安装开发依赖。
如果已经有该依赖,直接删掉根目录下的node_modules文件夹和package-lock.json文件,重新执行npm install全量重装所有依赖,装完重试启动命令。 - 第二步检查启动脚本配置
还是在package.json的scripts字段里,找到start对应的配置项,确认命令末尾的server指向的入口文件真实存在。如果项目启动入口是./src/server.js或者./bin/server.js这类非根目录server.js的路径,要把路径补全,不要只写server让系统找不到入口文件。 - 第三步校验运行环境
分别执行node -v、npm -v查看本地版本,对照项目里.nvmrc文件或者package.json中engines字段标注的版本要求,如果跨了大版本(比如项目要求Node 16,本地是Node 12或Node 20),切换到匹配的Node版本后重试。
Windows用户如果用PowerShell执行命令报权限错,先执行Set-ExecutionPolicy RemoteSigned给当前用户放开脚本执行权限,重启终端后再操作。 - 第四步定位精准报错
以上操作都无效的话,往上翻控制台的完整输出,不要只盯着最后打印的启动命令行:- 报
cross-env: command not found:回到第一步重装依赖即可 - 报
Error: Cannot find module 'xxx':单独安装报错提示里提到的缺失依赖包 - 报端口占用相关错误:关掉占用对应启动端口的进程,或者修改项目配置里的启动端口即可
- 报
内容的提问来源于stack exchange,提问作者SAI CHARAN KATKAM
相关产品推荐
相关产品推荐

