无全局Node.js与npm环境下运行Laravel Mix的问题求助
解决Laravel Mix构建时找不到Node.js的临时方案
问题原因
执行npm run dev触发Laravel Mix构建失败,报错/usr/bin/env: ‘node’: No such file or directory,是因为laravel-mix的CLI脚本首行使用#!/usr/bin/env node查找Node.js,但你的Node未全局安装且所在目录不在系统默认PATH中,导致系统无法定位到node可执行文件。
以下是无需修改系统环境文件的临时解决方法:
方法1:临时将Node目录加入PATH后执行命令
在执行构建命令时,临时把Node可执行文件所在目录添加到系统PATH中,让/usr/bin/env能找到node:
PATH=/path/to/node所在目录:$PATH /path/to/node /path/to/npm run dev
注意:将
/path/to/node所在目录替换为你的node文件所在文件夹(例如node文件路径是/opt/node-v18/bin/node,则目录为/opt/node-v18/bin)。
方法2:修改package.json的scripts命令
直接在package.json的scripts中指定Node的完整路径来运行Laravel Mix的CLI,绕开#!/usr/bin/env node的查找逻辑:
修改package.json的scripts部分:
"scripts": { "dev": "/path/to/node node_modules/laravel-mix/bin/cli.js", // 其他脚本(如prod、watch)可同理修改 "prod": "/path/to/node node_modules/laravel-mix/bin/cli.js --production" }
修改后,继续用原命令执行即可:
/path/to/node /path/to/npm run dev
方法3:创建临时软链接(可选)
在项目根目录创建指向Node可执行文件的软链接,让系统在当前目录优先找到node:
ln -s /path/to/node ./node
之后执行构建命令时,系统会优先使用当前目录的软链接node:
/path/to/node /path/to/npm run dev
构建完成后若不需要可删除软链接:
rm ./node
内容的提问来源于stack exchange,提问作者musiermoore
相关产品推荐
相关产品推荐

