AWS Elastic Beanstalk:我是否必须使用完整的“/ node_modules”和“/ bower_components”来部署我的应用程序,并编译sass和其他依赖项?

我不明白AWS Elastic Beanstalk在Node.js应用程序中的工作方式。 Node.js开发的最佳实践是,不必将/node_modules/bower_components或其他第三方包推送到版本控制系统(例如GitHub),而只需将package.json 。 所有这些/node_modules必须在.gitignore 。 然后任何人都可以执行npm installbower install并安装所有依赖项。 sass也是一样 – 编译生产环境。

好的,但AWS Elastic Beanstalk呢? 我如何创build我的Node.js应用程序的源代码包? 我必须提交FULL /node_modules/bower_components ,然后用它们做一个.zip包吗? 但是我的HEAD提交没有/node_modules ,因为/node_modules.gitignore 。 所以在.zip bundle中不会有依赖:

 git archive --format=zip HEAD > app.zip 

或者,在我将app.zip部署到AWS Elastic Beanstalk之后,是否可以select安装所有依赖项?

或者AWS Elastic Beanstalk在我上传了我的app.zip包之后立刻自行npm install在某个地方?

Elastic Beanstalk在使用goto部署应用程序时运行几个npm命令。 几个月前我做了一个小实验 。

总之,你可以使用npm install来部署你的依赖关系,然后使用npm prestart来构build和编译像sass这样的东西。