运行Laravel Mix的npm run dev报错:cross-env未被识别,求助解决
解决Laravel Mix中'cross-env'未被识别的问题
我之前也碰到过一模一样的问题,结合你的情况(Laravel Mix ^2.0、Node 8.9.0),给你几个针对性的解决方案,按顺序试应该能搞定:
1. 优先安装本地版cross-env
全局安装有时候会因为系统环境变量或者npm路径的问题不生效,直接在项目本地安装更稳妥:
npm install cross-env --save-dev
安装完之后再运行npm run dev试试,很多时候这一步就能解决问题。
2. 修改package.json里的脚本,用npx调用本地包
如果还是不行,把package.json里的dev命令改成用npx直接调用本地node_modules里的cross-env,避免路径问题:
"scripts": { "dev": "npx cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }
npx会自动帮你找到本地安装的cross-env,不用依赖全局路径。
3. 彻底清理缓存和依赖重新安装
有时候npm缓存或者lock文件会出问题,按这个流程来:
- 删除项目根目录下的
node_modules文件夹 - 删除
package-lock.json文件(如果用yarn的话删yarn.lock) - 清理npm缓存:
npm cache clean --force - 重新安装依赖:
npm install
4. 检查Windows环境变量(如果你用的是Windows)
你怀疑系统问题是对的,Windows下经常因为PATH变量没配置好导致命令找不到:
- 打开系统环境变量,检查
PATH里有没有Node.js的全局bin目录,默认路径是C:\Users\[你的用户名]\AppData\Roaming\npm - 如果没有,把这个路径添加进去,然后重启你的命令行工具(很重要,不重启不会生效)再试。
5. 指定兼容的cross-env版本
Laravel Mix 2.0和Node 8.9.0可以试试安装更旧版本的cross-env,比如v5.x系列,对旧Node版本兼容性更好:
npm install cross-env@5.2.1 --save-dev
这些方法应该能覆盖大部分情况,你按顺序试下来应该能解决这个问题。
内容的提问来源于stack exchange,提问作者Jesray Garciano
相关产品推荐
相关产品推荐

