我不了解Node.js应用程序中AWS Elastic Beanstalk的工作方式。 Node.js开发的最佳实践表明,不必将/node_modules
或/bower_components
或其他第三方软件包推送到版本控制系统(例如GitHub),只需将package.json
推送到。所有这些/node_modules
必须在.gitignore
中。然后任何人都可以执行npm install
或bower install
并安装所有依赖项。对于sass
同样如此-编译它们以用于生产环境。
好的,但是AWS Elastic Beanstalk呢?我如何创建Node.js应用程序的源包?我是否必须提交FULL /node_modules
和/bower_components
,然后将它们与.zip
捆绑在一起?但是我的HEAD提交没有/node_modules
,因为/node_modules
在.gitignore
中。因此,.zip
捆绑包中将没有依赖项:
git archive --format=zip HEAD > app.zip
还是在将
app.zip
部署到AWS Elastic Beanstalk之后是否可以选择安装所有依赖项?还是在我上载
npm install
捆绑包之后,AWS Elastic Beanstalk会立即在引擎盖下的某个位置执行app.zip
吗? 最佳答案
使用got部署应用程序时,Elastic Beanstalk运行一些npm命令。几个月前我做了little experiment。
简而言之,您可以使用npm install
部署您的依赖项,然后使用npm prestart
来构建和编译sass之类的东西。