我一直在尝试将我的nuxt通用应用程序部署到AWS Elastic 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配置下,添加了Node命令:npm run deploy
但是,它不起作用。
基本上,我需要告诉EB在“ npm运行开始”之前运行“ npm运行构建”
有人可以帮忙吗?
答案 0 :(得分:0)
您描述的内容位于npm领域,可以通过使用prestart脚本来解决,如下所示:
"prestart": "nuxt build"
此处有更多详细信息:https://docs.npmjs.com/misc/scripts
答案 1 :(得分:0)
以前,有“钩子”,但现在它们几乎已被弃用https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platform-hooks.html
现在您可以按照此处https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html
的说明使用Buildfile和Procfile答案 2 :(得分:0)
尝试将“ 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 Node.js服务器的想法:) 这是参考:
答案 3 :(得分:0)
到目前为止,这对我有所帮助,它似乎适用于通用模式下的默认nuxt项目(nuxt创建)。 我正在使用Elastic Beanstalk,CodePipeline和Bitbucket。 一旦推入CodePipeline,它就会从Bitbucket中获取代码,并在Elastic Beanstalk中进行内置。
对我有帮助的是添加到package.json:
"deploy": "npm run build && npm run start"
并在项目的根目录中创建Procfile
,Pocfile的内容/命令将触发package.json文件中的部署脚本
web: npm run deploy