繁体   English   中英

在 AWS ElasticBeanstalk 上部署 - 在启动服务器之前运行自定义 npm 脚本?

[英]Deploy on AWS ElasticBeanstalk - run custom npm script before starting server?

我一直在尝试将我的 nuxt 通用应用程序部署到 AWS 弹性 beantalk 上。 我已经尝试在我的 package.json 中使用自定义 npm 脚本:

"scripts": {
 "dev": "nuxt",
 "build": "nuxt build",
 "start": "nuxt start",
 "generate": "nuxt generate",
 "precommit": "npm run lint",
 "deploy": "nuxt build && nuxt start"
},

然后在 AWS EB 配置下,我添加了节点命令:npm run deploy

但是,它不起作用。

基本上,我需要告诉 EB 在“npm run start”之前运行“npm run build”

有人可以帮忙吗?

您所描述的内容在 npm 领域中,可以通过使用预启动脚本来解决,如下所示:

"prestart": "nuxt build"

更多细节在这里: https : //docs.npmjs.com/misc/scripts

到目前为止,这对我有帮助,它似乎适用于通用模式下的默认 nuxt 项目(nuxt create)。 我正在使用 Elastic Beanstalk、CodePipeline 和 Bitbucket。 CodePipeline 从 Bitbucket 中获取代码,一旦它被推送并构建在 Elastic Beanstalk 上。

帮助我的是添加到 package.json:

"deploy": "npm run build && npm run start"

或者

 "deploy": "npm run install && npm run build && npm run start"

并在项目根目录创建ProcfileProcfile内容/命令触发package.json文件中的部署脚本

web: npm run deploy

以前,有“钩子”,但现在它们几乎已弃用https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platform-hooks.html

现在您可以使用此处所述的 Buildfile 和 Procfile https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html

尝试将“source_compile.config”文件添加到您的 .ebextensions 中,如下所示:

# source_compile.config
container_commands:
  compile:
    command: "./node_modules/.bin/nuxt build"
    env:
      PATH: /opt/elasticbeanstalk/node-install/node-v12.16.3-linux-x64/bin/

在部署到 Elastic Beanstalk 之前,同样需要预编译一个 typescript nodejs 服务器 :) 这里有一个参考:

https://medium.com/@lhviet88/deploy-a-typescript-expressjs-into-elasticbeanstalk-nodejs-server-8381e00e7e52

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM