Windows运行npm start提示ESLINT_NO_DEV_ERRORS不是可识别命令如何解决
问题原因
你当前使用的VAR=VALUE 命令的环境变量声明语法是Linux/macOS类Unix系统的Shell专属写法,Windows系统自带的PowerShell、CMD都不支持该语法,所以在解析启动脚本时会把ESLINT_NO_DEV_ERRORS识别为待执行的命令,触发报错。
解决方案
- 方案1(推荐,全平台兼容):使用cross-env工具统一环境变量写法
- 先安装cross-env开发依赖:
npm install cross-env --save-dev - 修改package.json的scripts字段,所有环境变量声明前加上cross-env前缀:
改完后直接执行"scripts": { "start:build": "cross-env ESLINT_NO_DEV_ERRORS=TRUE docker-compose -f ../afectiva-api/docker-compose.yml exec frontend npx serve -s build -p 3000", "start": "cross-env ESLINT_NO_DEV_ERRORS=TRUE docker-compose -f ../afectiva-api/docker-compose.yaml exec frontend npx react-scripts start", "build": "cross-env CI=false npx react-scripts build", // 其余脚本保持不变 }npm start即可正常启动,该写法在Windows、macOS、Linux系统下都可正常运行,适合多成员协作的项目使用。 - 先安装cross-env开发依赖:
- 方案2(仅Windows本地使用,无需安装依赖):修改脚本为Windows Shell兼容语法
如果仅你个人在Windows环境下使用,不需要兼容其他系统,可以把启动脚本改成PowerShell兼容写法:
该写法仅能在Windows的PowerShell环境下运行,无法在类Unix系统中正常执行。"start": "$env:ESLINT_NO_DEV_ERRORS='TRUE'; docker-compose -f ../afectiva-api/docker-compose.yaml exec frontend npx react-scripts start" - 方案3:使用WSL运行项目
在Windows系统中安装Linux子系统(WSL),在WSL终端中执行npm start,类Unix环境原生支持你当前的脚本写法,不需要修改任何配置即可正常运行。
内容的提问来源于stack exchange,提问作者Daniel di Navaronne
相关产品推荐
相关产品推荐

