cross-env使用yarn start报错:'sh' 不是内部或外部命令

2024-04-26 10:19:10 浏览数 (2)

今天新拉的一个项目,在 yarn 安装完依赖后,执行启动命令 yarn start 报错 'sh' 不是内部或外部命令,也不是可运行的程序,详细报错信息如下:

代码语言:javascript复制
yarn run v1.22.21
$ cross-env NODE_OPTIONS=--max_old_space_size=12000 COMPRESS=none umi dev
'sh' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

查看 package.json 的启动命令,使用了 cross-env

代码语言:javascript复制
"start": "cross-env NODE_OPTIONS=--max_old_space_size=12000 COMPRESS=none umi dev",

如果去掉 cross-env 命令,只保留 umi dev 就能正常启动。

解决方法:

删除项目 yarn.lock 文件

清除 yarn 缓存:

代码语言:javascript复制
yarn cache clean

重新安装依赖:

代码语言:javascript复制
yarn

启动项目:

代码语言:javascript复制
yarn start

也可以尝试全局安装 cross-env:

代码语言:javascript复制
npm i -g cross-env

我用 vscode 的 PowerShell 报错,改用 Git Bash 就正常了。

0 人点赞