无法在Elastic Beanstalk上部署KeystoneJS

我想要在T2.micro实例上的Elastic Beanstalk上部署一个KeystoneJS应用程序。 在部署过程中,部署与eb-activity.log中的以下输出错误:

> kerberos@0.0.11 install /tmp/deployment/application/node_modules/keystone/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos > (node-gyp rebuild 2> builderror.log) || (exit 0) Running npm install: /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm Setting npm config jobs to 1 npm config jobs set to 1 Running npm with --production flag Failed to run npm install. Snapshot logs for more details. Traceback (most recent call last): File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 681, in main() File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 663, in main node_version_manager.run_npm_install(options.app_path) File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 131, in run_npm_install self.npm_install(bin_path, self.config_manager.get_container_config('app_staging_dir')) File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 166, in npm_install raise e subprocess.CalledProcessError: Command '['/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm', '--production', 'install']' returned non-zero exit status -9. 

我也检查了npm-debug.log,并看到以下内容:

 127706 info install kerberos@0.0.11 127707 silly gunzTarPerm extractEntry _baseAssign.js 127708 silly gunzTarPerm extractEntry _assignInDefaults.js 127709 silly gunzTarPerm extractEntry unzip.js 127710 silly gunzTarPerm extractEntry uniq.js 127711 silly gunzTarPerm extractEntry _baseGt.js 127712 silly gunzTarPerm extractEntry tap.js 127713 silly gunzTarPerm extractEntry _baseFor.js 127714 silly gunzTarPerm extractEntry toFinite.js 127715 silly gunzTarPerm extractEntry _baseFor.js 127716 silly gunzTarPerm extractEntry toFinite.js 127717 silly gunzTarPerm extractEntry es6/weak-map.js 127718 silly gunzTarPerm modified mode [ 'es6/weak-map.js', 438, 420 ] 127719 verbose unsafe-perm in lifecycle false 127720 verbose stack Error: spawn ENOMEM 127720 verbose stack at exports._errnoException (util.js:870:11) 127720 verbose stack at ChildProcess.spawn (internal/child_process.js:298:11) 127720 verbose stack at exports.spawn (child_process.js:362:9) 127720 verbose stack at spawn (/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/lib/node_modules/npm/lib/utils/spawn.js:7:13) 127720 verbose stack at runCmd_ (/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/lib/node_modules/npm/lib/utils/lifecycle.js:211:14) 127720 verbose stack at /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/lib/node_modules/npm/lib/utils/lifecycle.js:179:7 127720 verbose stack at nextTickCallbackWith0Args (node.js:420:9) 127720 verbose stack at process._tickCallback (node.js:349:13) 127721 verbose cwd /tmp/deployment/application 127722 error Linux 4.4.8-20.46.amzn1.x86_64 127723 error argv "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm" "--production" "install" 127724 error node v4.4.3 127725 error npm v2.15.1 127726 error code ENOMEM 127727 error errno ENOMEM 127728 error syscall spawn 127729 error spawn ENOMEM 127730 error If you need help, you may report this error at: 127730 error <https://github.com/npm/npm/issues> 127731 verbose exit [ 1, true ] 

如果我将实例大小增加到t2.small,也会发生这种情况。 这些实例是否不足以安装KeystoneJS?

这可能是你的gitignore / npmignore的问题。 我会尝试把一个黑色的.npmignore在你的项目的根。

如果项目中没有.npmignore,npm默认使用.gitignore

https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

StackOverflow参考: npm安装错误,错误:ENOENT,chmod