Amplify Console의 node, yarn 버전 업(Quasar 앱 빌드)

Amplify 는 신속하게 앱을 개발할 수 있는 개발 플랫폼입니다. ( AWS 버전의 FireBase )Amplify 에서 Quasar (멀티플랫폼 앱을 고속으로 만들 수 있는 Vue.js 기반 프레임워크)로 만든 앱을 배포( Amplify Console 이용)하고 조금 빠져서 해결 방법을 설명합니다.

문제



기본 설정을 그대로두면 nodeyarn 버전이 오래되어 오류가 발생합니다.
                                 # Starting phase: build
2020-06-20T16:01:17.980Z [INFO]: # Executing command: yarn
2020-06-20T16:01:18.130Z [INFO]: yarn install v1.16.0
2020-06-20T16:01:18.202Z [INFO]: [1/5] Validating package.json...
2020-06-20T16:01:18.204Z [WARNING]: error [email protected]: The engine "node" is incompatible with this module. Expected version ">= 10.18.1". Got "10.16.0"
2020-06-20T16:01:18.205Z [WARNING]: error [email protected]: The engine "yarn" is incompatible with this module. Expected version ">= 1.21.1". Got "1.16.0"

대응안



해결책을 서두르는 분은 여기
  • Build Image 변경
  • 빌드 명령 amplify.yml 에 대응하는
  • 환경 변수로 대응

  • 빌드 이미지 변경


    AWS Amplify - 대상 앱 - 빌드 설정 - Build image settings

    Amplify Console에서 맞춤 이미지 사용
    htps : // / cs. 아 ws. 아마존. 이 m/아 mpぃfy/ㅁ st/우세 r구이데/쿠 s와 m부이 ld-매달아. HTML

    1-1. Amplify 상단으로 이동





    1-2. 대상 앱 선택



    1-3. 빌드 설정 선택





    1-4. 빌드 이미지 변경





    이 방법의 고찰



    이 방법에서도, node 이나 yarn 의 업데이트는 가능합니다만, aws clinode 가 들어간 이미지를 찾아, 여러가지 준비할 필요가 있기 때문에 (※이하 발생한 에러), 꽤 귀찮습니다 . 그래서 2의 amplify.yml에서 대응하는 방법으로 전환했습니다.
    2020-06-21T02:03:23.452Z [INFO]: aws codecommit credential-helper $@ get: 1: aws codecommit credential-helper $@ get: aws: not found
    2020-06-21T02:03:23.453Z [INFO]: fatal: could not read Username for 'https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/amplify-sample-xxxxx': No such device or address
    

    빌드 명령 amplify.yml에서 해당



    amplify.yml에서 지원


    preBuild 단계에서 nodeyarn의 안정 버전을 다시 가져옵니다.

    amplify.yml
        preBuild:
          commands:
            - nvm use stable #安定版を利用
            - curl -o- -L https://yarnpkg.com/install.sh | bash #安定版を再インストール
    
  • amplify.yml 전량( Quasar pwa 빌드)

  • amplify.yml
    version: 1
    backend:
      phases:
        build:
          commands:
            - '# Execute Amplify CLI with the helper script'
            - amplifyPush --simple
    frontend:
      phases:
        preBuild:
          commands:
            - nvm use stable #安定版を利用
            - curl -o- -L https://yarnpkg.com/install.sh | bash #安定版を再インストール
            - yarn global add @quasar/cli
        build:
          commands:
            - yarn
            - yarn build
      artifacts:
        # IMPORTANT - Please verify your build output directory
        baseDirectory: /dist/pwa #distフォルダ指定
        files:
          - '**/*'
      cache:
        paths:
          - node_modules/**/*
    

    node stable 사용


    Provision 단계를 확인하면 nvm 를 이용하고 있음을 알 수 있으므로 nvm 명령으로 안정판을 이용하도록 합니다.
    nvm use stable #安定版を利用
    
  • Provision 위상 로그
  • 78  RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
    

    yarn의 stable 사용


    Provision 단계를 확인하면 환경 변수에 지정된 버전을 설치했으므로 버전 지정없이 최신 안정 버전을 설치합니다.
    curl -o- -L https://yarnpkg.com/install.sh | bash #安定版を再インストール
    
    yarn 설치(Linux 배포판)
    htps : // c c c c. 또는 rn pkg. 코 m / 그럼 / 드 cs / 엔 s ta l / # A l r Nachi ゔ ぇ s-s b ぇ
  • Provision 위상 로그
  • RUN /bin/bash -c ". ~/.nvm/nvm.sh && \
        nvm install $VERSION_NODE_8 && nvm use $VERSION_NODE_8 && \
        nvm install $VERSION_NODE_10 && nvm use $VERSION_NODE_10 && \
        npm install -g sm grunt-cli bower vuepress gatsby-cli && \
        bash /usr/local/bin/yarn-install.sh --version $VERSION_YARN && \ ########## <---- ココ
        nvm install $VERSI_NODE_12 && nvm use $VERSION_NODE_12 && \
        npm install -g sm grunt-cli bower vuepress gatsby-cli && \
        bash /usr/local/bin/yarn-install.sh --version $VERSION_YARN && \
        nvm alias default node && nvm cache clear"
    

    환경 변수로 대응


    Provision 단계 로그에서 환경 변수를 지정하여 문제를 해결할 수 있었지만 항상 최신 안정 버전을 사용하여 빌드하고 싶었기 때문에이 방법은 배웠습니다.
  • Provision 위상 로그
  • RUN /bin/bash -c ". ~/.nvm/nvm.sh && \
        nvm install $VERSION_NODE_8 && nvm use $VERSION_NODE_8 && \
        nvm install $VERSION_NODE_10 && nvm use $VERSION_NODE_10 && \
        npm install -g sm grunt-cli bower vuepress gatsby-cli && \
        bash /usr/local/bin/yarn-install.sh --version $VERSION_YARN && \ ########## <---- ココ
        nvm install $VERSI_NODE_12 && nvm use $VERSION_NODE_12 && \
        npm install -g sm grunt-cli bower vuepress gatsby-cli && \
        bash /usr/local/bin/yarn-install.sh --version $VERSION_YARN && \
        nvm alias default node && nvm cache clear"
    

    좋은 웹페이지 즐겨찾기