CircleCI:使用 nodejs 版本 12

CircleCI: Use nodejs version 12

提供我的CircleCI文件:

version: 2.1
orbs:
  node: circleci/node@4.1.0
  aws-cli: circleci/aws-cli@2.0.3
  eb: circleci/aws-elastic-beanstalk@2.0.1
jobs:
  build:
    docker:
      - image: "cimg/base:stable"
    steps:
      - node/install
      - checkout
      - aws-cli/setup
      - eb/setup
      - run:
          name: Check current version of node
          command: node -v
      - run:
          name: Get and install node version manager.
          command: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
      - run:
          name: Install Node version 12 using NVM
          command: nvm install 12 
      - run:
          name: Use Node version 12 
          command: nvm use 12     
      - run:
          name: Back-End Install
          command: |
            npm run backend:install
      - run:
          name: Front-End Install
          command: |
            npm run frontend:install
      - run:
          name: Back-End Build
          command: |
            npm run backend:build
      - run:
          name: Front-End Build
          command: |
            npm run frontend:build
      - run:
          name: Back-End Deploy
          command: |
            npm run backend:deploy
      - run:
          name: Front-End Deploy
          command: |
            npm run frontend:deploy

在安装过程中,CircleCI 安装节点版本v16.9.0,我需要使用v12。因此,我 运行 使用 NVM 使用 v12 的附加命令。

在设置期间是否有更简单的方法来使用特定版本的节点?[​​=13=]

我认为问题出在 orbs 上,因为在我更新到 node: circleci/node@4.7.0 之后,我的 NodeJS 安装和构建项目没有问题。

这是有道理的,因为 cI/CD 管道不应该 运行 软件,因此,NodeJS 版本应该无关紧要。

将节点版本的 cimg 作为 docker 图像使用应该可以。您不必使用 nvm 手动安装。

jobs:
  build:
    docker:
      - image: cimg/node:12.16

https://hub.docker.com/r/cimg/node

我正在使用 cimg/node:16.13.2,它工作正常。