在部署应用程序期间,npm install无法安装非常特殊的依赖项:
npm ERR! enoent ENOENT: no such file or directory, chmod '/tmp/deployment/application/node_modules/babel-core/node_modules/regexpu/node_modules/regjsparser/node_modules/jsesc/bin/jsesc'
我能够通过ssh进入托管我的Node应用程序的特定EC2实例并通过以下命令运行npm install来发现上述错误:
sudo /opt/elasticbeanstalk/containerfiles/ebnode.py --action npm-install 2
然后是这种一般性的失败:
Failed to run npm install. Snapshot logs for more details.
No environment variable EB_EVENT_FILE found. Writing message to stderr.
Msg: Failed to run npm install. Snapshot logs for more details.
奇怪的是,我之前已经成功部署过一次,并且使用了与之前部署完全相同的配置。我唯一的命令是在.ebextensions /.
中的npm start在我的package.json中,我将所有dev依赖项更改为依赖项,因为webpack在prestart期间正在构建。
顺便说一句,这一切都在本地构建和运行。我也在EB上使用Node 4.2.1和npm 2.14.7。
任何帮助都会很棒。谢谢!
答案 0 :(得分:1)
我最终只是创建和部署Docker容器来解决这个问题。部署到EB提供的环境太过不确定 - 依赖树未正确创建。