在 AWS CI-CD 管道中找不到 NVM
NVM not found in AWS CI-CD Pipeline
我刚开始在 aws 中创建管道。我想为我的 nuxt 项目创建一个 ci-cd 管道。
我创建了一个 yml 文件,我想在其中安装 nvm,然后安装节点版本 12.18.3
问题是我遇到了找不到 nvm 的错误。
如果我的 yml 文件中有任何错误,请检查并告诉我:
version: 0.2
phases:
install:
commands:
- echo Installing nvm...
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
- export NVM_DIR="$HOME/.nvm"
- '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"'
- '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"'
pre_build:
commands:
#install dependencies
- echo Installing node...
- nvm install 12.18.3
- echo Installing npm...
- npm install
build:
commands:
#build
- echo building...
- npm run generate
artifacts:
files:
- '**/*'
base-directory: dist
cache:
paths:
- node_modules/**/*
谢谢。
工作解决方案
出于某种原因,它无法识别下一行中的 nvm。我没有机会进一步调查它。以下配置有效。这个想法是在同一行中设置 nvm 配置和安装节点。
version: 0.2
phases:
install:
commands:
- echo Installing nvm...
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
- export NVM_DIR="$HOME/.nvm"
- '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"'
- '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"'
pre_build:
commands:
#install dependencies
- . "$NVM_DIR/nvm.sh" && nvm install 12.18.3 && echo "node installed by arun"
- echo Installing node...
#- nvm install 12.18.3
- echo Installing npm...
- npm install
build:
commands:
#build
- echo building...
- npm run generate
cache:
paths:
- node_modules/**/*
在本地环境中进行故障排除。
为了解决 buildspec.yaml 问题,您可以 运行 在本地构建。这是 run the buildspec locally.
的方法
您实际上不需要使用 nvm 在 AWS CodeBuild 上安装特定 node.js 版本。
您可以使用 runtime-versions 选项来安装某些版本,但您对此没有太多控制权。
phases:
install:
runtime-versions:
nodejs: 12.x
但是 AWS 标准 5 图像预装了 n(没有检查 4,但它也应该在那里),所以你可以像这样使用它:
phases:
install:
commands:
- n 12.18.3
它会安装与 nvm 相同的版本。
我刚开始在 aws 中创建管道。我想为我的 nuxt 项目创建一个 ci-cd 管道。 我创建了一个 yml 文件,我想在其中安装 nvm,然后安装节点版本 12.18.3
问题是我遇到了找不到 nvm 的错误。
如果我的 yml 文件中有任何错误,请检查并告诉我:
version: 0.2
phases:
install:
commands:
- echo Installing nvm...
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
- export NVM_DIR="$HOME/.nvm"
- '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"'
- '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"'
pre_build:
commands:
#install dependencies
- echo Installing node...
- nvm install 12.18.3
- echo Installing npm...
- npm install
build:
commands:
#build
- echo building...
- npm run generate
artifacts:
files:
- '**/*'
base-directory: dist
cache:
paths:
- node_modules/**/*
谢谢。
工作解决方案
出于某种原因,它无法识别下一行中的 nvm。我没有机会进一步调查它。以下配置有效。这个想法是在同一行中设置 nvm 配置和安装节点。
version: 0.2
phases:
install:
commands:
- echo Installing nvm...
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
- export NVM_DIR="$HOME/.nvm"
- '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"'
- '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"'
pre_build:
commands:
#install dependencies
- . "$NVM_DIR/nvm.sh" && nvm install 12.18.3 && echo "node installed by arun"
- echo Installing node...
#- nvm install 12.18.3
- echo Installing npm...
- npm install
build:
commands:
#build
- echo building...
- npm run generate
cache:
paths:
- node_modules/**/*
在本地环境中进行故障排除。
为了解决 buildspec.yaml 问题,您可以 运行 在本地构建。这是 run the buildspec locally.
的方法您实际上不需要使用 nvm 在 AWS CodeBuild 上安装特定 node.js 版本。
您可以使用 runtime-versions 选项来安装某些版本,但您对此没有太多控制权。
phases:
install:
runtime-versions:
nodejs: 12.x
但是 AWS 标准 5 图像预装了 n(没有检查 4,但它也应该在那里),所以你可以像这样使用它:
phases:
install:
commands:
- n 12.18.3
它会安装与 nvm 相同的版本。