asdf 관리하의 노드입니다.js에서 Corepack 노트 사용하기

이 기사에서, 노드.js16.10.0에 실험적 처리 기능에 대해 적혀 있습니다.참고 가치가 있다면 각자 최신 상황을 재조사해 주십시오.
며칠 전.js의16.9.0Corepack으로 실험적인 처리로 가져왔습니다.
예전부터 신경이 쓰여서 이참에 한번 해보고 싶었어요.저는 asdf로 다양한 버전을 관리하고 있지만 Corepack에서yarn,pnpm을 사용하기 전에 시간이 좀 걸리기 때문에 그 노트입니다.
그 전 과정에서 조사한 것도 적어 놓을게요.
Node.js,Corepack,asdf-vm에 대해 아래에 링크를 붙여 주세요.
https://nodejs.org/
https://nodejs.org/dist/latest-v16.x/docs/api/corepack.html
https://asdf-vm.com/

컨디션

  • OS: Debian GNU/Linux 10.10 (buster)
  • asdf-vm: v0.8.0
  • 가져온 asdf 플러그인
  • asdf-nodejs
  • asdf-yarn
  • asdf-pnpm
  • yarn, pnpm은 asdf로 설치되어 있으며 전 세계에 설치되어 있지 않습니다.

    절차.


    먼저 단계부터 시작합니다.

    Node.js 설치 16.90 이후


    > asdf install nodejs 16.10.0
    
    보통 asdf로 설치합니다.글을 쓸 때 16.10.0이 나왔다.

    적절한 디렉토리 생성 및 이동


    > mkdir tekitou_na_dexirectori ; cd $_
    

    설치된 노드입니다.이 디렉터리에서 js 사용하기


    > asdf local nodejs 16.10.0
    

    Corepack 사용


    > corepack enable
    
    16.10.0에 Corepack은 실험적인 기능이기 때문에 사용하기 전에 유효성이 필요하다.나는 이 프로그램이 장래에 어떻게 될지 모른다.

    asdf의shim 다시 만들기


    > asdf reshim nodejs
    
    보통 잘 안 쓰죠.corepack으로 설치된 yarn, pnpm은 이게 필요합니다.

    그럼 패키지?json을 만들어서 포장 관리자와 버전을 지정해 주세요.


    package.json
    {
      "packageManager": "[email protected]"
    }
    
    Corepack이 제일 하고 싶은 거야.

    동작 확인


    > yarn --version
    3.0.0
    
    설치 명령 등은 별도로 수행할 필요가 없습니다.첫 번째 집행에는 시간이 좀 걸린다..yarnrc.ymlyarnPath를 통해 실행 파일을 지정할 필요도 없습니다.
    다른 포장 관리자와 버전도 만들어 보세요.
    package.json
    {
      "packageManager": "[email protected]"
    }
    
    > yarn --version
    Usage Error: This project is configured to use pnpm
    
    $ yarn ...
    > pnpm --version
    6.15.1
    
    나는 asdf reshim 지령을 사용한 적이 없거나, 이번 일을 처음 알았기 때문에 이곳에 도착하기 전에 잠시 빠져들었다.

    reshim이 필요한 이유


    asdf는 메커니즘으로 설치된 명령을 ~/.asdf/shims에 설치된shim라고 불리는 파일을 통해 실행합니다.
    이 shim은 각 도구를 설치할 때 업데이트된 것 같습니다.위의 절차에 따르면 집행asdf install nodejs 16.10.0할 때다.다운로드한 파일에 따라 자동으로 생성되고 업데이트됩니다.
    구체적으로 이번 상황은 ~/.asdf/installs/nodejs/16.10.0/bin의 문서다.
    설치 후 시간은 다음과 같습니다.
    > ls ~/.asdf/installs/nodejs/16.10.0/bin
    corepack  node  npm  npx
    
    이 파일 그룹을 기반으로 shim이 업데이트되었습니다.
    여기에corepack enable실행하세요.
    > corepack enable
    > ls ~/.asdf/installs/nodejs/16.10.0/bin
    corepack  node  npm  npx  pnpm  pnpx  yarn  yarnpkg
    
    와bin 이하에yarn,pnpm의 파일을 추가합니다.Corepack이 준비한 shim입니다.
    이렇게 하면 설치 후 즉시 존재하지 않는 파일은 asdf의shim에 반영해야 하기 때문에 실행해야 한다asdf reshim nodejs.
    앞으로 Corepack의 실험적 처리를 기대하며 잃어버렸을 때 이 리즘의 순서는 무용지물이 되지 않겠는가, 하지만 지금은 상황-.

    16.90 이전 노드입니다.js, asdf의yarn, pnpm 플러그인과 공존


    Corepack을 사용하더라도 yarn, pnpm 플러그인을 마운트 해제할 필요가 없습니다. 공존하거나 분리해서 사용할 수 있습니다.
    asdf를 사용하는 사람들은 사용한 명령어의 버전 변환은 .tool-versions이라는 파일로 제어된다는 것을 알아야 한다.

    Node.js16.90 이후 코어팩 유효화 상황


    상술한 순서대로 하지만 아래의 느낌만 있으면 된다.
    .tool-versions
    nodejs 16.9.0
    
    여기에 yarn 플러그인이 지정되지 않았습니다.Node.js 관리하에 Corepack에 설치된yarn이 사용됩니다.
    package.json
    {
      "packageManager": "[email protected]"
    }
    

    Node.js16.90 이전 (Corepack 없음),yarnv1 시스템을 사용할 때


    .tool-versions
    nodejs 14.17.6
    yarn 1.22.15
    
    이쪽은 asdf 관리하는yarn을 사용하고 싶어서 이렇게 합니다.

    Node.js16.90 이전 (Corepack 없음),yarnv2 이후의 경우


    .tool-versions
    nodejs 14.17.6
    yarn 1.22.15
    
    마찬가지로 asdf 관리하의yarn을 사용합니다.
    > yarn set version 3.0.0
    
    asdf에 v1시스템의 최신 상태를 설치하였으며, 이yarn의 명령 측면 설정에서 v2 이후의 내용을 사용합니다.
    asdf로 직접 지정할 수 없는 방법이 방법입니다.
    https://github.com/twuni/asdf-yarn
    yarn의 v2 이후 설치, 설정 등에 대한 설명이 많으니 저쪽을 보세요.

    요점


    설정.tool-versions은 nodejs 플러그인 관리하의yarn과yarn 플러그인 관리하의yarn 중 하나만 참조한다.
    둘 다 참조할 수 있는 상태는 그만두는 게 좋을 것 같습니다.규격상 어느 것이 우선인지 잘 몰라서...
    좀 번거롭긴 하지만 코어팩을 유효화해서 시도한 카탈로그와 좀 오래된 노드.js를 사용하는 디렉터리에서 특별히 무리하게 전환할 필요가 없습니다.

    감상


    그래서 자신의 환경에서 Corepack을 시도할 때의 그것과 이것.
    저는 개인적으로 yarnv2 이후 버전 지정이 좀 미묘하다고 생각해서 package.json 통일된 Corepack에 대한 기대가 큽니다.
    지금은 완전히 다른 곳으로 이동하기 어렵지만 asdf 관리에서 현재 실험용 디렉터리와 원래 설정이 적용된 디렉터리를 분리하여 안심할 수 있습니다.
    겸사겸사 말씀드리지만 pnpm파입니다.

    좋은 웹페이지 즐겨찾기