Windows运行yarn dev提示'PORT'不是内部或外部命令如何解决
问题修复方案
错误原因
你使用的PORT=3005 next dev是类Unix系统(Linux/macOS)的Shell环境变量赋值语法,Windows系统的CMD、PowerShell均不支持该写法,因此会抛出PORT不是可识别命令的错误。
修复方案
方案1:跨平台通用(推荐)
使用cross-env工具实现跨平台的环境变量赋值,所有系统都可正常运行:
- 安装cross-env为开发依赖:
yarn add cross-env -D
- 修改
package.json中的dev脚本配置:
"scripts": { "dev": "cross-env PORT=3005 next dev", "build": "next build", "start": "next start", "lint": "next lint", "test": "jest" },
方案2:Next.js专属配置(更简洁)
Next.js原生支持从环境变量配置文件读取端口配置,无需额外安装工具:
- 在项目根目录新建
.env.local文件,写入以下内容:
PORT=3005
- 修改
package.json中的dev脚本为默认写法:
"dev": "next dev"
启动项目时Next.js会自动读取.env.local中的端口配置生效。
方案3:仅适配Windows本地使用
如果不需要兼容其他系统,可以直接修改脚本为Windows CMD支持的语法:
"dev": "set PORT=3005 && next dev"
注意:该写法仅支持Windows系统,无法在Linux/macOS上运行,不建议多人协作项目使用。
内容的提问来源于stack exchange,提问作者Shawn
相关产品推荐
相关产品推荐

