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

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk:我是不是必须使用完整的“/node_modules”和“/bower_components”部署我的应用程序并编译 sass 和其他依赖项?【英文标题】:AWS Elastic Beanstalk: Do I have to deploy my app with full "/node_modules" and "/bower_components" and compiled sass and other dependencies?AWS Elastic Beanstalk:我是否必须使用完整的“/node_modules”和“/bower_components”部署我的应用程序并编译 sass 和其他依赖项? 【发布时间】:2016-03-01 09:49:08 【问题描述】:

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

好的,但是 AWS Elastic Beanstalk 呢?如何创建我的 Node.js 应用程序的源包?我是否必须提交完整的/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 之后,我是否可以选择安装所有依赖项?

或者在我上传 app.zip 包后,AWS Elastic Beanstalk 会立即在后台执行 npm install

【问题讨论】:

【参考方案1】:

在使用 got 部署应用程序时,Elastic Beanstalk 会运行一些 npm 命令。几个月前我做了一个little experiment。

简而言之,你可以使用npm install来部署你的依赖,然后使用npm prestart来构建和编译sass之类的东西。

【讨论】:

以上是关于AWS Elastic Beanstalk:我是不是必须使用完整的“/node_modules”和“/bower_components”部署我的应用程序并编译 sass 和其他依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

AWS OpsWorks 中是不是有类似的 Elastic Beanstalk 工作程序层模式

HTTPS Elastic Beanstalk (AWS) 到 Android

使用 AWS Elastic Beanstalk 进行部署时,是不是应该将静态文件存储在单独的 S3 中?

AWS Elastic Beanstalk 问题

在移动设备或台式计算机之间部署到 aws elastic beanstalk 的 django 网站是不是有区别?

AWS Elastic Beanstalk 权限的最佳实践