여러 패키지와 자바 스크립트 프로젝트를 관리하기위한 도구입니다.

  • 정보
  • 시작하기
  • 작동 방식
  • 문제 해결
  • 명령
  • 기타
  • 레르나.9371>

    큰 코드베이스를 독립적으로 버전이 지정된 별도의 패키지로 분할하는 것은 코드 공유에 매우 유용합니다. 그러나 많은 리포지토리에서 변경하는 것은 지저분하고 추적하기 어렵고 리포지토리에서 테스트하는 것은 정말 빨리 복잡해집니다.

    이러한(및 기타 많은)문제를 해결하기 위해 일부 프로젝트는 코드베이스를 다중 패키지 저장소(모노 레포스라고도 함)로 구성합니다. 바벨,반응,각도,엠버,유성,농담 등과 같은 프로젝트는 단일 저장소 내에서 모든 패키지를 개발합니다.이 툴은 여러 개의 패키지 리포지토리를 관리할 수 있는 워크플로를 최적화하는 툴입니다.

    레르나는 또한 개발 및 빌드 환경에서 수많은 패키지 사본에 대한 시간과 공간 요구 사항을 줄일 수 있습니다. 자세한 내용은 호이스트 설명서를 참조하십시오.

    레르나 레포는 어떻게 생겼나요?

    실제로 거의 없습니다. 다음과 같은 파일 시스템이 있습니다:

    my-lerna-repo/ package.json packages/ package-1/ package.json package-2/ package.json

    레나는 무엇을 할 수 있습니까?

    레르나의 두 가지 기본 명령은lerna bootstraplerna publish입니다.

    bootstrap는 리포지토리의 종속성을 함께 연결합니다. publish업데이트 된 패키지를 게시하는 데 도움이됩니다.

    시작하기

    아래의 지침은 레르나 2 에 대한 것입니다.1 대신 사용하는 것이 좋습니다.새로운 레르나 프로젝트에 대한 엑스. 당신이 1 을 볼 필요가 있다면 위키를 확인하십시오.엑스 추가 정보.이 문제를 해결하려면 다음 단계를 따르세요.

    $ npm install --global lerna

    다음으로 새 자식 저장소를 만듭니다.:

    $ git init lerna-repo$ cd lerna-repo

    그리고 이제 그것을 레르 나 레포로 바꿔 봅시다:

    $ lerna init

    이제 리포지토리가 다음과 같이 표시됩니다:

    lerna-repo/ packages/ package.json lerna.json

    이렇게 하면lerna.json구성 파일과packages폴더가 생성됩니다.

    작동 원리

    고정 또는 독립의 두 가지 모드 중 하나를 사용하여 프로젝트를 관리 할 수 있습니다.

    고정/잠금 모드(기본값)

    고정 모드 레르나 프로젝트는 단일 버전 라인에서 작동합니다. 이 버전은 프로젝트 루트의version키 아래에 있는lerna.json파일에 보관됩니다. lerna publish을 실행할 때 모듈이 마지막으로 릴리스된 이후 업데이트된 경우 릴리스하는 새 버전으로 업데이트됩니다. 즉,필요할 때만 새 버전의 패키지를 게시합니다.

    이것은 바벨이 현재 사용하고 있는 모드이다. 모든 패키지 버전을 자동으로 연결하려는 경우에 사용합니다. 이 접근 방식의 한 가지 문제는 모든 패키지가 크게 변경되면 모든 패키지가 새로운 주 버전을 갖게된다는 것입니다.

    독립 모드(–독립)

    독립 모드 레르나 프로젝트를 통해 관리자는 서로 독립적으로 패키지 버전을 증분할 수 있습니다. 게시할 때마다 패치,부,주 또는 사용자 지정 변경 여부를 지정하도록 변경된 각 패키지에 대한 프롬프트가 표시됩니다.

    독립 모드를 사용하면 각 패키지의 버전을 보다 구체적으로 업데이트할 수 있으며 구성 요소 그룹에 적합합니다. 이 모드를 시맨틱 릴리스와 같이 결합하면 덜 고통 스러울 것입니다. (이 작업은 골드 피처/레르 나-시맨틱 릴리스에서 이미있다).

    lerna.jsonversion키는 독립 모드에서 무시됩니다.

    문제 해결

    레르나를 사용하는 동안 문제가 발생하면 문제 해결 문서를 확인하여 문제에 대한 답을 찾을 수 있습니다.

    자주 묻는 질문

    참조 FAQ.md.

    명령

    초기화

    $ lerna init

    새 레르나 리포지토리를 만들거나 기존 리포지토리를 현재 버전의 레르나로 업그레이드합니다.

    레르나는 리포지토리가 이미git init로 초기화되었다고 가정합니다.

    실행할 때 이 명령은:

    1. 아직 존재하지 않는 경우package.jsonlernadevDependency으로 추가합니다.
    2. lerna.json구성 파일을 만들어version번호를 저장합니다.

    새 자식 리포지토리에 대한 예제 출력:

    $ lerna initlerna info version v2.0.0lerna info Updating package.jsonlerna info Creating lerna.jsonlerna success Initialized Lerna files

    –이 플래그는 레르나에게 독립 버전 관리 모드를 사용하도록 지시합니다.

    –정확한

    $ lerna init --exact

    기본적으로lerna initnpm install --save-dev lerna과 같이lerna의 로컬 버전을 추가하거나 업데이트할 때 캐럿 범위를 사용합니다.

    lerna1 을 유지합니다.엑스”정확한”비교의 행동,이 플래그를 전달하십시오. 모든 후속 실행에 대해 정확히 일치하도록lerna.json를 구성합니다.

    { "lerna": "2.0.0", "command": { "init": { "exact": true } }, "version": "0.0.0"}

    부트스트랩

    $ lerna bootstrap

    현재 레르나 리포지토리에서 패키지를 부트스트랩합니다. 모든 종속성을 설치하고 상호 종속성을 연결합니다.

    실행할 때 이 명령은:

    1. npm install 각 패키지의 모든 외부 종속성.
    2. 서로의 종속성 인 모든 레르 나packages을 함께 심볼릭 링크합니다.
    3. npm prepublish모든 부트 스트랩 패키지.

    lerna bootstrap --ignore,--scope--include-filtered-dependencies플래그를 존중합니다(플래그 참조).

    추가 인수 전달--:

    $ lerna bootstrap -- --production --no-optional

    또한 구성 할 수 있습니다lerna.json:

    { ... "npmClient": "yarn", "npmClientArgs": }

    bootstrap작동 방식

    babel을 예로 들어 보겠습니다.

    • babel-generator 그리고source-map(그 중에서도)는babel-core의 종속성입니다.
    • babel-core‘아래 그림과 같이 이 두 패키지를 모두dependencies의 키로 나열합니다.
    // babel-core package.json{ "name": "babel-core", ... "dependencies": { ... "babel-generator": "^6.9.0", ... "source-map": "^0.5.0" }}
    • 레르나는 각 종속성이 레르나 리포지토리의 일부인지 확인합니다.
      • 이 예에서babel-generator은 내부 종속성일 수 있지만source-map는 항상 외부 종속성입니다.
      • babel-corepackage.jsonbabel-generator버전은packages/babel-generator에 의해 만족되어 내부 종속성을 전달합니다.
      • source-map는 보통처럼npm install에드(또는yarn에드)입니다.
    • packages/babel-core/node_modules/babel-generator packages/babel-generator
    • 에 대한 심볼릭 링크 중첩된 디렉터리 가져오기

    참고:

    • 패키지의 종속성 버전이 리포지토리에서 동일한 이름의 패키지에 의해 충족되지 않으면 정상처럼npm install에드(또는yarn에드)가 됩니다.이 태그는 다음과 같습니다.
    • 순환 종속성으로 인해 편집기/아이디에 영향을 줄 수있는 순환 심볼릭 링크가 발생합니다.

    순환 심볼릭 링크가 있을 때 웹스톰이 잠깁니다. 이를 방지하려면Preferences | Editor | File Types | Ignored files and folders의 무시된 파일 및 폴더 목록에node_modules을 추가합니다.

    게시

    $ lerna publish

    현재 레르나 프로젝트에 패키지를 게시합니다.

    업데이트된 패키지의 새 릴리스를 만듭니다. 새 버전에 대한 프롬프트. 새 자식 커밋/태그를 만듭니다.

    보다 구체적으로,이 명령은:

    1. lerna updated에 해당하는 패키지를 실행하여 게시해야 하는 패키지를 확인합니다.
    2. 필요한 경우lerna.json에서version키를 증가시킵니다.
    3. 업데이트된 모든 패키지의package.json를 새 버전으로 업데이트합니다.
    4. 업데이트된 패키지의 모든 종속성을 캐럿(^)으로 지정된 새 버전으로 업데이트합니다.
    5. 새 버전에 대한 새 자식 커밋 및 태그를 만듭니다.
    6. 업데이트된 패키지를 게시합니다.

    레르나는 비공개로 표시된 패키지를 게시하지 않습니다(package.json에서"private": true).

    –정확한

    $ lerna publish --exact

    이 플래그로 실행할 때publish은 셈버 호환(^)이 아닌 업데이트 된 패키지의 업데이트 된 종속성을 구두점없이 정확하게 지정합니다.

    자세한 내용은 패키지를 참조하십시오.종속성 문서.이 플래그를 사용하여 실행될 때,publish은 지정된 태그로 게시됩니다(기본값은latest).

    이 옵션은prerelease또는beta버전을 게시하는 데 사용할 수 있습니다.

    주: latest태그는 사용자가npm install my-package를 실행할 때 사용되는 태그입니다. 다른 태그를 설치하려면 사용자가npm install [email protected]을 실행할 수 있습니다.

    –이 플래그를 사용하여 실행할 때publish은 커밋 당보다 세부적인 방식으로 패키지를 게시합니다. 현재version을 취하고 다음 부 버전으로 부딪치고 제공된 메타 접미사(기본값은alpha)를 추가하고 현재 자식 샤(예:1.0.01.1.0-alpha.81e3b443이 됨)를 추가하여 새version태그를 만듭니다.

    이 플래그의 사용 사례는 커밋당 레벨 릴리스 또는 야간 릴리스입니다.

    –기존 커밋

    $ lerna publish --conventional-commits

    이 플래그로 실행할 때publish는 기존 커밋 사양을 사용하여 버전 범프를 확인하고 변경 로그를 생성합니다

    –힘내 원격

    $ lerna publish --git-remote upstream

    이 플래그로 실행할 때publishorigin대신 지정된 리모컨으로 자식 변경 사항을 푸시합니다.

    –건너뛰기-자식

    $ lerna publish --skip-git

    이 플래그를 실행 하면publish자식 명령을 실행 하지 않고.

    커밋,태그 지정 및 푸시 변경 내용은 건너 뜁니다(게시에만 영향을 미칩니다).

    –이 플래그를 사용하여 실행할 때publish은 모든package.json패키지 버전과 종속성 버전을 업데이트하지만 실제로 패키지를 게시하지는 않습니다.

    이 기능은 이후 수정된 문제 해결 방법으로 유용했습니다. 추가 정보 변경 내용을 게시할 때는--skip-npm를 사용하고 각 패키지에 대해 최종npm publish을 직접 수행합니다.

    이 플래그는--skip-git와 결합하여 커밋,태그 지정,푸시하거나 게시하지 않고 버전 및 종속성 만 업데이트 할 수 있습니다.

    버전 및 종속성만 업데이트합니다.

    –강제 게시

    $ lerna publish --force-publish=package-2,package-4# force publish all packages$ lerna publish --force-publish=*

    이 플래그로 실행하면publish은 지정된 패키지(쉼표로 구분)또는*를 사용하여 모든 패키지를 강제로 게시합니다.

    이렇게 하면lerna updated변경된 패키지 확인이 건너뛰고git diff변경 내용이 없는 패키지를 강제로 업데이트할 수 있습니다.

    –예

    $ lerna publish --canary --yes# skips `Are you sure you want to publish the above changes?`

    이 플래그로 실행하면publish은 모든 확인 프롬프트를 건너뜁니다. 게시 확인 프롬프트에 자동으로 응답하기 위해 지속적인 통합에 유용합니다.

    –이 플래그를 사용하여 실행하면publish은 버전 선택 프롬프트를 건너뛰고(독립 모드에서)다음 지정된 시맨틱 버전을 사용합니다. 모든 프롬프트를 방지하려면--yes플래그를 사용해야 합니다. 이 기능은 명령 프롬프트 없이 빌드 시스템을 게시해야 할 때 유용합니다. 정상 및 독립 모드 모두에서 작동합니다.이 플래그를 사용하여 실행하면publish은 버전 선택 프롬프트를 건너뛰고 지정된 버전을 사용합니다. 게시할 버전을 이미 알고 있는 경우 사용자 입력 프롬프트를 우회하는 데 유용합니다.

    –메시지,-엠

    이 플래그를 사용하여 실행하면publish은 게시를 위해 버전 업데이트를 커밋할 때 제공된 메시지를 사용합니다. 커밋 메시지가 커미션 및/또는 시맨틱 릴리스를 사용하는 프로젝트와 같은 특정 지침을 준수 할 것으로 예상되는 프로젝트에 레나를 통합하는 데 유용합니다.

    메시지에%s가 포함되어 있으면 새 전역 버전 버전 번호 앞에”브이”가 붙습니다. 이는--independent를 사용할 때”전역”버전이 없으므로 기본”고정”버전 관리 모드를 사용하는 경우에만 적용됩니다.

    업데이트

    $ lerna updated

    마지막 릴리스(마지막 자식 태그)이후 변경된packages을 확인하십시오.

    레나는 마지막으로 생성 된 자식 태그를 결정하고git diff --name-only v6.8.1을 실행하여 해당 태그 이후 변경된 모든 파일을 가져옵니다. 그런 다음 업데이트된 파일이 있는 패키지 배열을 반환합니다.

    publish명령에 대한 구성도updated명령에 영향을 줍니다. 예를 들어config.publish.ignore

    –이 플래그를 사용하여 실행할 때updated은 다음 형식의 개체 배열을 반환합니다:

    정리

    $ lerna clean

    모든 패키지에서node_modules디렉터리를 제거합니다.

    lerna clean--ignore,--scope--yes플래그를 존중합니다(플래그 참조).

    차이

    $ lerna diff $ lerna diff# diff a specific package$ lerna diff package-name

    차이 마지막 릴리스 이후 모든 패키지 또는 단일 패키지.

    lerna updated과 유사합니다. 이 명령은git diff을 실행합니다.현재 레르나 리포지토리에 있는 모든 공개 패키지를 나열합니다.

    lerna ls--ignore--scope플래그를 존중합니다(플래그 참조).이 플래그를 사용하여 실행할 때ls은 다음 형식의 개체 배열을 반환합니다:

    실행

    해당 스크립트가 포함된 각 패키지에서 스크립트를 실행합니다. 스크립트 실행에 파선 인수를 전달하려면 이중 대시(--)가 필요합니다.

    lerna run존중--concurrency, --scope, --ignore, --stream, 그리고--parallel플래그(플래그 참조).

    $ lerna run --scope my-component test

    참고:--parallel플래그를 사용할 때 이 명령의 범위(및lerna exec,아래)를 제한하는 것이 좋습니다. 만,느린 ftp 를 방

    exec

    $ lerna exec -- <command> # runs the command in all packages$ lerna exec -- rm -rf ./node_modules$ lerna exec -- protractor conf.js

    실행되는 임의의 명령에서 각 패키지입니다. 이중 대시(--)는 생성 된 명령에 파선 플래그를 전달하는 데 필요하지만 모든 인수가 위치 인 경우에는 필요하지 않습니다.

    lerna exec존중--concurrency, --scope, --ignore, 그리고--parallel플래그(플래그 참조).

    $ lerna exec --scope my-component -- ls -la

    장기 실행 프로세스를 생성하려면--parallel플래그를 전달합니다:

    # transpile all modules as they change in every package$ lerna exec --parallel -- babel src -d lib -w

    환경 변수를 통해 현재 패키지의 이름을 가져올 수도 있습니다LERNA_PACKAGE_NAME:

    $ lerna exec -- npm view $LERNA_PACKAGE_NAME

    환경 변수를 통해 복잡한 디렉터리 구조에서 루트 디렉터리에 있는 스크립트를 실행할 수도 있습니다LERNA_ROOT_PATH:

    $ lerna exec -- node $LERNA_ROOT_PATH/scripts/some-script.js

    힌트:명령은 주어진 동시성을 사용하여 병렬로 생성됩니다(--parallel제외). 출력을 통해 파이프,그래서 결정적 없습니다. 한 패키지에서 다른 패키지로 명령을 실행하려면 다음과 같이 사용하십시오:

    $ lerna exec --concurrency 1 -- ls -la

    –보석금

    $ lerna exec --bail=<boolean> <command>

    이 플래그는exec명령이 생성된 하위 프로세스 중 하나에서 발생한 오류가 발생하면 실행을 중지해야 하는지 여부를 나타냅니다. 기본값은true입니다.

    가져 오기

    $ lerna import <path-to-external-repository>

    커밋 기록과 함께<path-to-external-repository>의 패키지를packages/<directory-name>으로 가져옵니다. 원본 커밋 작성자,날짜 및 메시지는 유지됩니다. 커밋은 현재 분기에 적용됩니다.

    이것은 기존의 독립 실행형 패키지를 레르나 리포지토리에 수집하는 데 유용합니다. 각 커밋은 패키지 디렉터리를 기준으로 변경하도록 수정됩니다. 예를 들어package.json를 추가 한 커밋은 대신packages/<directory-name>/package.json을 추가합니다.

    기타

    레르나 명령을 실행하는 오류가 발생하면lerna-debug.log파일(npm-debug.log과 동일)에 로그됩니다.

    레르나는 범위가 지정된 패키지도 지원합니다.

    인수 없이lerna을 실행하면 모든 명령/옵션이 표시됩니다.

    레르나.제이슨

    { "lerna": "2.0.0", "version": "1.1.3", "commands": { "publish": { "ignore": }, "bootstrap": { "ignore": "component-*" } }, "packages": }
    • lerna: 현재 사용 중인 레르나 버전.
    • version: 리포지토리의 현재 버전입니다.
    • commands.publish.ignore: lerna updated/publish에 포함되지 않을 작은 방울 배열입니다. 이 기능을 사용하면README.md오타 수정과 같은 변경 사항에 대해 불필요하게 새 버전을 게시하지 않도록 할 수 있습니다.
    • commands.bootstrap.ignore: lerna bootstrap명령을 실행할 때 부트스트랩되지 않는 작은 방울 배열입니다.
    • commands.bootstrap.scope: lerna bootstrap명령을 실행할 때 부트스트랩될 패키지를 제한하는 작은 방울 배열입니다.
    • packages: 패키지 위치로 사용할 작은 방울 배열입니다.

    공통 개발 종속성

    대부분의devDependencies은 레르나 리포지토리의 루트까지 끌어올 수 있습니다.

    다음과 같은 몇 가지 이점이 있습니다:

    • 모든 패키지는 지정된 종속성의 동일한 버전을 사용합니다.
    • 종속성을 루트에 최신 상태로 유지할 수 있습니다.
    • 종속성 설치 시간이 단축됩니다.
    • 적은 스토리지 필요

    이 프로그램은 자바 바이트코드 프로그램의 갯수를 카운트하고,스크립트의 메인 형식을 합계냅니다,그리고 확인되지 않은 실행 텍스트 파일을 찾습니다..

    예를 들어nsp종속성은 이 경우lerna run nsp(및npm run nsp패키지 디렉토리 내)이 올바르게 작동하려면 필요합니다:

    { "scripts": { "nsp": "nsp" }, "devDependencies": { "nsp": "^2.3.3" }}

    플래그

    옵션은 구성(lerna.json)또는 명령줄에서 가져올 수 있습니다. 또한 구성의 옵션은 최상위 수준에서 살 수 또는 특정 명령에 적용 할 수있다.

    예:

    { "lerna": "x.x.x", "version": "1.2.0", "exampleOption": "foo", "command": { "init": { "exampleOption": "bar", } },}

    이 경우exampleOptioninit을 제외한 모든 명령에 대해”푸”가되며 여기서”바”가됩니다. 모든 경우에--example-option=baz로 명령줄에서”바즈”로 재정의될 수 있습니다.

    –동시성

    레르나 작업을 병렬화할 때 사용할 스레드 수(기본값4)

    $ lerna publish --concurrency 1

    –범위

    명령 범위를 패키지의 하위 집합으로 설정합니다.

    $ lerna exec --scope my-component -- ls -la
    $ lerna run --scope toolbar-* test

    이후 스크립트 또는 명령을 실행할 때 지정된ref이후 업데이트된 패키지로 작업의 범위를 지정합니다. ref이 지정되지 않은 경우 기본값은 최신 태그입니다.

    최신 태그 이후 변경된 패키지 내용 나열:

    $ lerna exec --since -- ls -la

    master이후 변경된 모든 패키지에 대한 테스트를 실행합니다.:

    $ lerna run test --since master

    이후 변경된 모든 패키지 나열some-branch:

    $ lerna ls --since some-branch

    이 기능은 홍보 대상 지점을 얻을 수 있는 경우ref에서--since옵션으로 사용할 수 있기 때문에 특히 유용합니다. 이 기능 분기 뿐만 아니라 마스터에 홍보에 대 한 잘 작동 합니다.

    –무시

    명령을 실행할 때 패키지의 하위 집합을 제외합니다.

    $ lerna bootstrap --ignore component-*

    ignore플래그는bootstrap명령과 함께 사용할 때commands.bootstrap키 아래의lerna.json에서 설정할 수도 있습니다. 명령줄 플래그는 이 옵션에 대해 선행 작업을 수행합니다.

    { "lerna": "2.0.0", "version": "0.0.0", "commands": { "bootstrap": { "ignore": "component-*" } }}

    힌트:글로브는 패키지가 있는 디렉토리 이름이 아니라package.json에 정의된 패키지 이름과 일치합니다.

    –포함-필터링-종속성

    참고:이 플래그는--scope--ignore플래그보다 우선합니다.

    즉,--ignore플래그와 일치하는 패키지가 부트스트랩 중인 다른 패키지에 종속되어 있으면 부트스트랩됩니다.

    이는 설정 중인 다른 패키지를 사용하는 단일 패키지를”설정”하려는 경우에 유용합니다.

    $ lerna bootstrap --scope my-component --include-filtered-dependencies# my-component and all of its dependencies will be bootstrapped

    –로그 레벨

    보고할 로그 수준입니다. 오류가 발생하면 모든 로그가 레르나 디버그에 기록됩니다.현재 작업 디렉토리에 로그인합니다.

    설정보다 높은 수준의 로그가 표시됩니다. 기본값은”정보”입니다.

    –최대 버퍼

    각 기본 프로세스 호출에 대해 최대 버퍼 길이를 설정합니다. 예를 들어 누군가가lerna import을 실행하는 동안 더 많은 양의 커밋을 가진 리포지토리를 가져 오려고 할 때 유용합니다. 이 경우 기본 제공 버퍼 길이가 충분하지 않을 수 있습니다.

    –정렬 안 함

    기본적으로 모든 태스크는 해당 패키지의 종속 관계를 존중하기 위해 위상 정렬된 순서로 패키지에서 실행됩니다. 사이클은 레르나 호출에 걸쳐 일관성이 보장되지 않는 방식으로 최선의 노력을 기반으로 끊어집니다.

    토폴로지 정렬은 부양 가족이 많은 패키지 수가 적거나 일부 패키지를 실행하는 데 불균형하게 오랜 시간이 걸리는 경우 동시성 병목 현상을 일으킬 수 있습니다. --no-sort옵션은 정렬을 비활성화하고 대신 최대 동시성으로 임의의 순서로 작업을 실행합니다.

    이 옵션은 여러”감시”명령을 실행하는 경우에도 도움이 될 수 있습니다. lerna run은 위상 적으로 정렬 된 순서로 명령을 실행하므로 계속 진행하기 전에 명령을 기다릴 수 있습니다. 이것은 일반적으로 끝이 없기 때문에”감시”명령을 실행할 때 실행을 차단합니다. “감시”명령의 예는babel--watch클리와 함께 실행 됩니다.

    –호이스트

    리포지토리 루트에glob과 일치하는 외부 종속성을 설치하여 모든 패키지에서 사용할 수 있습니다. 이러한 종속성의 모든 바이너리는 종속 패키지node_modules/.bin/디렉토리에 연결됩니다. 옵션이 있지만glob이 주어지지 않으면 기본값은**입니다(모두 호이스트). 이 옵션은bootstrap명령에만 영향을 줍니다.

    $ lerna bootstrap --hoist

    --hoist의 배경은 호이스트 문서를 참조하십시오.

    참고:패키지가 외부 종속성의 다른 버전에 의존하는 경우 가장 일반적으로 사용되는 버전이 게양되고 경고가 방출됩니다.

    glob일치하는 외부 종속성을 저장소 루트에 설치하지 마십시오. 이는 특정 종속성에 대한 호이 스팅을 거부하는 데 사용할 수 있습니다.

    $ lerna bootstrap --hoist --nohoist=babel-*

    –외부 종속성을 설치하는 방법은 다음과 같습니다. 종속성을 설치하는 방법을 알고 있는 실행 파일이어야 합니다.

    $ lerna bootstrap --npm-client=yarn

    또한 다음과 같이 구성될 수 있습니다lerna.json:

    { ... "npmClient": "yarn"}

    –사용-작업 영역

    원사 작업 영역과의 통합 가능(이후 사용 가능 [email protected]+).
    배열의 값은 레나가 작업을 원사에 위임하는 명령입니다(현재는 부트스트랩만 가능).
    --use-workspaces이 참인 경우packagespackage.json/workspaces.
    의 값으로 재정의됩니다.lerna.json:

    { ... "npmClient": "yarn", "useWorkspaces": true}

    –스트림

    원본 패키지 이름 앞에 자식 프로세스의 출력을 즉시 스트리밍합니다. 이를 통해 다른 패키지의 출력을 인터리브 할 수 있습니다.

    $ lerna run watch --stream

    –병렬

    --stream와 비슷하지만 동시성 및 토폴로지 정렬을 완전히 무시하고 접두사가있는 스트리밍 출력이있는 모든 일치하는 패키지에서 주어진 명령 또는 스크립트를 즉시 실행합니다. 이 플래그는 많은 패키지에서babel src -d lib -w실행과 같은 장기 실행 프로세스에 대한 기본 플래그입니다.

    $ lerna exec --parallel -- babel src -d lib -w

    –레지스트리

    이 플래그를 사용하여 실행하면 패키지에 지정된 레지스트리가 사용됩니다.

    모든 패키지에서 레지스트리 구성을 명시적으로 설정하지 않으려는 경우에 유용합니다.예를 들어 개인 레지스트리를 사용할 때 개별적으로 파일을 만듭니다.

    –임시 태그

    전달되면 이 플래그는 먼저 변경된 모든 패키지를 임시 디스트 태그(lerna-temp)에 게시한 다음 새 버전을 기본 디스트 태그(latest)로 이동하여 기본 게시 프로세스를 변경합니다.

    이것은 일반적으로 필요하지 않습니다.(레르나를 사용하려고 하거나 새 팀에 도입하려고 하는 경우),레르나 마법사를 좋아할 수도 있습니다. 그것은 잘 정의 된 일련의 단계를 통해 당신을 이끌 것입니다:

    현재 태그

답글 남기기

이메일 주소는 공개되지 않습니다.