Node.js 无法安装带有npm和.ebextensions(代码ELIFECYCLE)的laravel echo服务器 错误背景
我正在启动一个EC2实例Linux PHP平台。在构建过程中,我成功地安装了npm以及一个不相关的包PM2 但是,在这之后,它尝试使用npm i-g laravel echo server安装laravel echo server,并始终返回错误:Node.js 无法安装带有npm和.ebextensions(代码ELIFECYCLE)的laravel echo服务器 错误背景,node.js,linux,npm,amazon-ec2,Node.js,Linux,Npm,Amazon Ec2,我正在启动一个EC2实例Linux PHP平台。在构建过程中,我成功地安装了npm以及一个不相关的包PM2 但是,在这之后,它尝试使用npm i-g laravel echo server安装laravel echo server,并始终返回错误: $ npm i -g laravel-echo-server /usr/bin/laravel-echo-server -> /usr/lib/node_modules/laravel-echo-server/bin/server.js
$ npm i -g laravel-echo-server
/usr/bin/laravel-echo-server -> /usr/lib/node_modules/laravel-echo-server/bin/server.js
> spawn-sync@1.0.15 postinstall /usr/lib/node_modules/laravel-echo-server/node_modules/spawn-sync
> node postinstall
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn sh
npm ERR! file sh
npm ERR! path sh
npm ERR! errno -2
npm ERR! spawn-sync@1.0.15 postinstall: `node postinstall`
npm ERR! spawn sh ENOENT
npm ERR!
npm ERR! Failed at the spawn-sync@1.0.15 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
试图解决
奇怪的是,当我在构建后SSH到实例中并自己运行命令时,它完全可以正常工作。只有当.ebextensions构建尝试调用它时,它才会失败
npm config set scripts-prepend-node-path true #to make sure it has the right node path
sudo ln -s `which nodejs` /usr/bin/node #to create a sym link to the node location
sudo ln -s /usr/bin/node /usr/bin/nodejs #another attempt to create a sym link to the node location
附加信息
.ebextensions脚本
哪个节点
哪个节点
哪种pm2
显然,这是spawn sync的一个问题,因此我将其更改为此,并成功运行:
npm i -g laravel-echo-server --ignore-scripts spawn-sync
/usr/bin/node
not found #or /usr/bin/nodejs if I create the symlink, but that doesn't help
/usr/bin/pm2
npm i -g laravel-echo-server --ignore-scripts spawn-sync