在不安装全局nodejs和npm的情况下运行Laravel Mix



我有一个laravel项目,我需要使用laravel混合构建样式和脚本,但测试服务器(Ubuntu 20.04.4(没有全局安装节点。Node和npm在系统中的不同文件夹中,所以我运行这样的命令:

/path/to/node /path/to/npm install
/path/to/node /path/to/npm run dev

但是当我运行npm run dev(这个命令运行laravel-mix-build(时,我看到了错误:

> mazer@2.0.0 dev
> mix
/usr/bin/env: ‘node’: No such file or directory

在package.json中,它看起来像这样:

"scripts": {
"dev": "mix"
...
}

我检查了laravel-mix包(在node_modules中(,发现它是:#!/usr/bin/env node。包检查该文件中的节点var,但没有节点var。

我不需要更改env文件,那么我如何更改此路径或设置临时系统var?有什么方法可以模拟变量在那里吗?

我有一个解决这个问题的方法。

有关命名拼写错误或路径符号链接的问题。

因此,您需要使用以下命令链接nodejs的符号链接

ln -s /usr/bin/nodejs /usr/bin/node 

sudo ln -s /usr/bin/nodejs /usr/bin/node

我用Docker解决了问题,所以现在我在git-push上运行这个命令:docker run --rm -v /path/to/project:/var/www/html node:16.16.0-alpine npm run dev --prefix /var/www/html

也许它对某人有用。

UPD

我找到了另一种解决方法,我错误地使用了PATH,因此它不起作用:

错误

我设置了node和npm的路径,然后将其添加到PATH中,如下所示:

NODE_PATH="/path/to/node_folder/node"
NPM_PATH="/path/to/node_folder/npm"
PATH="${NODE_PATH}:${NPM_PATH}:$PATH"

而且系统无论如何都找不到npm和node。

正确的方式

/path/to/node_folders(节点和npm在其中(添加到PATH:

NODE_DIR="/path/to/node_folder"
PATH="${NODE_DIR}:$PATH"

然后,我可以只运行npm installnpm run dev,而不需要它们的完整路径。

最新更新