Una herramienta para gestionar proyectos JavaScript con múltiples paquetes.
- Acerca De
- Introducción
- Cómo Funciona
- Solución De Problemas
- Comandos
- Misc
- Lerna.json
- Flags
Acerca de
Dividir grandes bases de código en paquetes versionados de forma independiente es extremadamente útil para compartir código. Sin embargo, hacer cambios en muchos repositorios es complicado y difícil de rastrear, y las pruebas en los repositorios se complican muy rápido.
Para resolver estos (y muchos otros) problemas, algunos proyectos organizarán sus bases de código en repositorios de paquetes múltiples (a veces llamados monorepos). Proyectos como Babel, React, Angular, Ember, Meteor, Jest y muchos otros desarrollan todos sus paquetes dentro de un único repositorio.
Lerna es una herramienta que optimiza el flujo de trabajo en torno a la gestión de repositorios de paquetes múltiples con git y npm.
Lerna también puede reducir los requisitos de tiempo y espacio para numerosas copias de paquetes en entornos de desarrollo y construcción, normalmente un inconveniente de dividir un proyecto en muchos paquetes NPM separados. Consulte la documentación del polipasto para obtener más detalles.
¿Qué aspecto tiene un repositorio Lerna?
En realidad es muy poco. Tiene un sistema de archivos que se parece a este:
my-lerna-repo/ package.json packages/ package-1/ package.json package-2/ package.json
¿Qué puede hacer Lerna?
Los dos comandos principales en Lerna son lerna bootstrap
y lerna publish
.
bootstrap
enlazará dependencias en el repositorio. publish
ayudará a publicar cualquier paquete actualizado.
Primeros pasos
Las siguientes instrucciones son para Lerna 2.x. Recomendamos usarlo en lugar de 1.x para un nuevo proyecto Lerna. Revisa el wiki si necesitas ver el 1.x LÉAME.
Comencemos instalando Lerna globalmente con npm.
$ npm install --global lerna
A continuación crearemos un nuevo repositorio git:
$ git init lerna-repo$ cd lerna-repo
Y ahora vamos a convertirlo en un repositorio de Lerna:
$ lerna init
Tu repositorio ahora debería tener este aspecto:
lerna-repo/ packages/ package.json lerna.json
Esto creará un archivo de configuración lerna.json
, así como una carpeta packages
.
Cómo funciona
Lerna le permite administrar su proyecto utilizando uno de dos modos: Fijo o Independiente.
Modo fijo / bloqueado (predeterminado)
Los proyectos Lerna de modo fijo funcionan en una sola línea de versión. La versión se mantiene en el archivo lerna.json
en la raíz de su proyecto bajo la clave version
. Cuando ejecuta lerna publish
, si un módulo se ha actualizado desde la última vez que se realizó una versión, se actualizará a la nueva versión que está lanzando. Esto significa que solo publica una nueva versión de un paquete cuando lo necesita.
Este es el modo que Babel está utilizando actualmente. Use esto si desea vincular automáticamente todas las versiones de paquetes. Un problema con este enfoque es que un cambio importante en cualquier paquete dará lugar a que todos los paquetes tengan una nueva versión principal.
Modo independiente (independent independiente)
Modo independiente Los proyectos Lerna permiten a los mantenedores incrementar las versiones de paquetes de forma independiente entre sí. Cada vez que publique, recibirá un mensaje para cada paquete que haya cambiado para especificar si se trata de un cambio de parche, menor, mayor o personalizado.El modo independiente
le permite actualizar versiones más específicas para cada paquete y tiene sentido para un grupo de componentes. Combinar este modo con algo como liberación semántica lo haría menos doloroso. (Ya hay trabajo sobre esto en atlassian / lerna-semantic-release).
La tecla
version
enlerna.json
se ignora en modo independiente.
Solución de problemas
Si tiene algún problema mientras usa Lerna, consulte nuestro documento de solución de problemas donde puede encontrar la respuesta a su problema.
Preguntas frecuentes
Ver FAQ.md.
Comandos
init
$ lerna init
Crear un nuevo repositorio de Lerna o actualizar un repositorio existente a la versión actual de Lerna.
Lerna asume que el repositorio ya se ha inicializado con
git init
.
Cuando se ejecuta, este comando:
- Agregue
lerna
comodevDependency
enpackage.json
si aún no existe. - Cree un archivo de configuración
lerna.json
para almacenar el númeroversion
.
Salida de ejemplo en un nuevo repositorio de git:
$ lerna initlerna info version v2.0.0lerna info Updating package.jsonlerna info Creating lerna.jsonlerna success Initialized Lerna files
–independiente, – i
$ lerna init --independent
Este indicador indica a Lerna que utilice el modo de control de versiones independiente.
exact exacto
$ lerna init --exact
De forma predeterminada, lerna init
utilizará un intervalo de corchetes al agregar o actualizar la versión local de lerna
, al igual que npm install --save-dev lerna
.
Para conservar lerna
1.x comportamiento de comparación «exacta», pase esta bandera. Configurará lerna.json
para hacer cumplir la coincidencia exacta para todas las ejecuciones posteriores.
{ "lerna": "2.0.0", "command": { "init": { "exact": true } }, "version": "0.0.0"}
bootstrap
$ lerna bootstrap
Bootstrap los paquetes en el repositorio Lerna actual. Instala todas sus dependencias y vincula cualquier dependencia cruzada.
Cuando se ejecuta este comando:
-
npm install
todas las dependencias externas de cada paquete. - Enlazar simbólicamente todos los Lerna
packages
que son dependencias entre sí. -
npm prepublish
todos los paquetes bootstrap.
lerna bootstrap
respeta las banderas --ignore
, --scope
y --include-filtered-dependencies
(consulte Banderas).
Pase argumentos adicionales al cliente npm colocándolos después --
:
$ lerna bootstrap -- --production --no-optional
También se puede configurar en lerna.json
:
{ ... "npmClient": "yarn", "npmClientArgs": }
Cómo funciona bootstrap
Usemos babel
como ejemplo.
-
babel-generator
ysource-map
(entre otros) son dependencias debabel-core
. -
babel-core
‘spackage.json
enumera ambos paquetes como claves endependencies
, como se muestra a continuación.
// babel-core package.json{ "name": "babel-core", ... "dependencies": { ... "babel-generator": "^6.9.0", ... "source-map": "^0.5.0" }}
- Lerna comprueba si cada dependencia también forma parte del repositorio de Lerna.
- En este ejemplo,
babel-generator
puede ser una dependencia interna, mientras quesource-map
siempre es una dependencia externa. - La versión de
babel-generator
en elpackage.json
debabel-core
se satisface conpackages/babel-generator
, pasando por una dependencia interna. -
source-map
esnpm install
ed (oyarn
ed) como de costumbre.
- En este ejemplo,
-
packages/babel-core/node_modules/babel-generator
enlaces simbólicos apackages/babel-generator
- Esto permite importar directorios anidados
Notas:
- Cuando una versión de dependencia en un paquete no es satisfecha por un paquete del mismo nombre en el repositorio, será
npm install
ed (oyarn
ed) como de costumbre. - Las etiquetas Dist, como
latest
, no satisfacen los rangos semver. - Las dependencias circulares dan como resultado enlaces simbólicos circulares que pueden afectar a su editor / IDE.
Webstorm se bloquea cuando hay enlaces simbólicos circulares presentes. Para evitar esto, agregue node_modules
a la lista de archivos y carpetas ignorados en Preferences | Editor | File Types | Ignored files and folders
.
publicar
$ lerna publish
Publicar paquetes en el proyecto Lerna actual. Cuando se ejecuta, este comando hace lo siguiente:
Crea una nueva versión de los paquetes que se han actualizado. Solicita una nueva versión. Crea una nueva confirmación/etiqueta de git en el proceso de publicación en npm.
Más específicamente, este comando:
- Ejecute el equivalente a
lerna updated
para determinar qué paquetes deben publicarse. - Si es necesario, aumente la tecla
version
enlerna.json
. - Actualice el
package.json
de todos los paquetes actualizados a sus nuevas versiones. - Actualice todas las dependencias de los paquetes actualizados con las nuevas versiones, especificadas con un signo de mayúsculas (^).
- Crea una nueva confirmación y etiqueta de git para la nueva versión.
- Publicar paquetes actualizados en npm.
Lerna no publicará paquetes que estén marcados como privados (
"private": true
enpackage.json
).
–exacto
$ lerna publish --exact
Cuando se ejecuta con este indicador, publish
especificará dependencias actualizadas en paquetes actualizados exactamente (sin puntuación), en lugar de como compatible con semver (con ^
).
Para obtener más información, consulte el paquete.documentación de dependencias json.
tag npm-tag
$ lerna publish --npm-tag=next
Cuando se ejecuta con este indicador, publish
se publicará en npm con la etiqueta de dist npm dada (el valor predeterminado es latest
).
Esta opción se puede usar para publicar una versión prerelease
o beta
.
Nota: la etiqueta
latest
es la que se usa cuando un usuario ejecutanpm install my-package
. Para instalar una etiqueta diferente, un usuario puede ejecutarnpm install [email protected]
.
–canary, – c
$ lerna publish --canary$ lerna publish --canary=beta
Cuando se ejecuta con este indicador, publish
publica paquetes de una manera más detallada (por confirmación). Antes de publicar en npm, crea la nueva etiqueta version
tomando la etiqueta version
actual, colocándola en la siguiente versión menor, agregando el sufijo meta proporcionado (por defecto alpha
) y añadiendo la etiqueta git sha actual (por ejemplo, 1.0.0
se convierte en 1.1.0-alpha.81e3b443
).
El caso de uso previsto para este indicador es una versión por nivel de confirmación o una versión nocturna.
–confirmaciones convencionales
$ lerna publish --conventional-commits
Cuando se ejecuta con este indicador, publish
utilizará la Especificación de confirmaciones convencionales para determinar el salto de versión y generar el REGISTRO de cambios
git git-remote
$ lerna publish --git-remote upstream
Cuando se ejecuta con este indicador, publish
empujará los cambios de git al control remoto especificado en lugar de origin
.
skip skip-git
$ lerna publish --skip-git
Cuando se ejecuta con este indicador, publish
se publicará en npm sin ejecutar ninguno de los comandos de git.
Solo publicar en npm; omita confirmar, etiquetar y empujar cambios de git (esto solo afecta a publicar).
–skip-npm
$ lerna publish --skip-npm
Cuando se ejecuta con este indicador, publish
actualizará todas las versiones de paquetes package.json
y las versiones de dependencias, pero en realidad no publicará los paquetes en npm.
Esto fue útil como solución para un problema de npm que ya se ha solucionado. Al publicar con cambios LÉAME, use
--skip-npm
y haga el finalnpm publish
a mano para cada paquete.
Este indicador se puede combinar con --skip-git
para simplemente actualizar versiones y dependencias, sin confirmar, etiquetar, empujar o publicar.
Solo actualice versiones y dependencias; no publique realmente (esto solo afecta a publicar).
–forzar la publicación
$ lerna publish --force-publish=package-2,package-4# force publish all packages$ lerna publish --force-publish=*
Cuando se ejecuta con este indicador, publish
forzará la publicación de los paquetes especificados (separados por comas) o de todos los paquetes que usen *
.
Esto saltará la comprobación
lerna updated
de paquetes modificados y obligará a actualizar un paquete que no tenía un cambiogit diff
.
–sí
$ lerna publish --canary --yes# skips `Are you sure you want to publish the above changes?`
Cuando se ejecuta con este indicador, publish
omitirá todas las solicitudes de confirmación. Útil en integración continua (CI) para responder automáticamente al mensaje de confirmación de publicación.
version cd-version
Cuando se ejecuta con este indicador, publish
omitirá el mensaje de selección de versión (en modo independiente) y utilizará la siguiente versión semántica especificada. Aún debe usar la bandera --yes
para evitar todas las indicaciones. Esto es útil cuando los sistemas de compilación necesitan publicar sin instrucciones de comandos. Funciona en modos normal e independiente.
id pre-id
version repo-version
$ lerna publish --repo-version 1.0.1# applies version and skips `Select a new version for...` prompt
Cuando se ejecuta con este indicador, publish
omitirá el mensaje de selección de versión y usará la versión especificada. Útil para omitir el mensaje de entrada del usuario si ya sabe qué versión publicar.
message message, – m
Cuando se ejecuta con este indicador, publish
utilizará el mensaje proporcionado al confirmar las actualizaciones de la versión para su publicación. Útil para integrar lerna en proyectos que esperan que los mensajes de confirmación se adhieran a ciertas pautas, como proyectos que usan commititizen y/o liberación semántica.
Si el mensaje contiene %s
, se reemplazará con el nuevo número de versión de la versión global con el prefijo «v». Tenga en cuenta que esto solo se aplica cuando se usa el modo de control de versiones «fijo» predeterminado, ya que no hay una versión «global» cuando se usa --independent
.
actualizado
$ lerna updated
Comprueba qué packages
ha cambiado desde la última versión (la última etiqueta de git).
Lerna determina la última etiqueta git creada y ejecuta git diff --name-only v6.8.1
para cambiar todos los archivos desde esa etiqueta. Luego devuelve una matriz de paquetes que tienen un archivo actualizado.
Tenga en cuenta que la configuración del comando publish
también afecta al comando updated
. Por ejemplo config.publish.ignore
–json
$ lerna updated --json
Cuando se ejecuta con este indicador, updated
devolverá una matriz de objetos en el siguiente formato:
limpiar
$ lerna clean
Eliminar el directorio node_modules
de todos los paquetes.
lerna clean
respeta las banderas --ignore
, --scope
y --yes
(consulte Banderas).
diff
$ lerna diff $ lerna diff# diff a specific package$ lerna diff package-name
Diff todos los paquetes o un solo paquete desde la última versión.
Similar a
lerna updated
. Este comando ejecutagit diff
.
ls
$ lerna ls
Lista todos los paquetes públicos en el repositorio Lerna actual.
lerna ls
respeta las banderas --ignore
y --scope
(consulte Banderas).
j json
$ lerna ls --json
Cuando se ejecuta con este indicador, ls
devolverá una matriz de objetos en el siguiente formato:
ejecutar
Ejecutar un script npm en cada paquete que contenga ese script. Se necesita un doble guión (--
) para pasar argumentos discontinuos a la ejecución del script.
lerna run
respeta el --concurrency
, --scope
, --ignore
, --stream
, y banderas --parallel
(consulte Banderas).
$ lerna run --scope my-component test
Nota: Se recomienda restringir el alcance de este comando (y
lerna exec
, a continuación) cuando se usa la bandera--parallel
, ya que generar docenas de subprocesos puede ser perjudicial para la ecuanimidad de su shell (o el límite máximo de descriptores de archivo, por ejemplo). YMMV
exec
$ lerna exec -- <command> # runs the command in all packages$ lerna exec -- rm -rf ./node_modules$ lerna exec -- protractor conf.js
Ejecuta un comando arbitrario en cada paquete. Un doble guión (--
) es necesario para pasar banderas discontinuas al comando generado, pero no es necesario cuando todos los argumentos son posicionales.
lerna exec
respeta el --concurrency
, --scope
, --ignore
, y banderas --parallel
(consulte Banderas).
$ lerna exec --scope my-component -- ls -la
Para generar procesos de larga duración, pase la bandera --parallel
:
# transpile all modules as they change in every package$ lerna exec --parallel -- babel src -d lib -w
También puede obtener el nombre del paquete actual a través de la variable de entornoLERNA_PACKAGE_NAME
:
$ lerna exec -- npm view $LERNA_PACKAGE_NAME
También puede ejecutar un script ubicado en el directorio raíz, en una estructura de directorio complicada a través de la variable de entornoLERNA_ROOT_PATH
:
$ lerna exec -- node $LERNA_ROOT_PATH/scripts/some-script.js
Sugerencia: Los comandos se generan en paralelo, utilizando la concurrencia dada (excepto con
--parallel
). La salida se canaliza, por lo que no es determinista. Si desea ejecutar el comando en un paquete tras otro, utilícelo de la siguiente manera:
$ lerna exec --concurrency 1 -- ls -la
–bail
$ lerna exec --bail=<boolean> <command>
Esta bandera indica si el comando exec
debe detener la ejecución al encontrar un error lanzado por uno de los subprocesos generados. Su valor predeterminado es true
.
importar
$ lerna import <path-to-external-repository>
Importar el paquete en <path-to-external-repository>
, con historial de confirmaciones, en packages/<directory-name>
. Se conservan los autores, las fechas y los mensajes originales de la confirmación. Las confirmaciones se aplican a la rama actual.
Esto es útil para reunir paquetes independientes preexistentes en un repositorio Lerna. Cada confirmación se modifica para hacer cambios relativos al directorio del paquete. Así, por ejemplo, el commit que agregó package.json
agregará packages/<directory-name>/package.json
.
Misc
Lerna se registrará en un archivo lerna-debug.log
(igual que npm-debug.log
) cuando encuentre un error al ejecutar un comando.
Lerna también tiene soporte para paquetes con alcance.
Ejecutar lerna
sin argumentos mostrará todos los comandos / opciones.
lerna.json
{ "lerna": "2.0.0", "version": "1.1.3", "commands": { "publish": { "ignore": }, "bootstrap": { "ignore": "component-*" } }, "packages": }
-
lerna
: la versión actual de Lerna que se utiliza. -
version
: la versión actual del repositorio. -
commands.publish.ignore
: una matriz de globs que no se incluirán enlerna updated/publish
. Use esto para evitar publicar una nueva versión innecesariamente para cambios, como corregir un error tipográficoREADME.md
. -
commands.bootstrap.ignore
: una matriz de globs que no se arrancarán al ejecutar el comandolerna bootstrap
. -
commands.bootstrap.scope
: un array de globs que restringe qué paquetes serán arrancados al ejecutar el comandolerna bootstrap
. -
packages
: Matriz de globs para usar como ubicaciones de paquetes.
Dependencias de desarrollo comunes
La mayoría de devDependencies
se pueden arrastrar hasta la raíz de un repositorio Lerna.
Esto tiene algunos beneficios:
- Todos los paquetes utilizan la misma versión de una dependencia dada
- Puede mantener actualizadas las dependencias en la raíz con una herramienta automatizada como GreenKeeper
- Se reduce el tiempo de instalación de dependencias
- Se necesita menos almacenamiento
Tenga en cuenta que devDependencies
proporciona ejecutables «binarios» que los scripts npm todavía deben instalarse directamente en cada paquete donde se usan.
Por ejemplo, la dependencia nsp
es necesaria en este caso para que lerna run nsp
(y npm run nsp
dentro del directorio del paquete) funcione correctamente:
{ "scripts": { "nsp": "nsp" }, "devDependencies": { "nsp": "^2.3.3" }}
Banderas
Las opciones de Lerna pueden provenir de la configuración (lerna.json
) o de la línea de comandos. Además, las opciones de config pueden estar en el nivel superior o aplicarse a comandos específicos.
Ejemplo:
{ "lerna": "x.x.x", "version": "1.2.0", "exampleOption": "foo", "command": { "init": { "exampleOption": "bar", } },}
En este caso exampleOption
será «foo» para todos los comandos excepto init
, donde será «bar». En todos los casos se puede reemplazar a «baz»en la línea de comandos con --example-option=baz
.
concurr concurrency
Cuántos hilos usar cuando Lerna paraleliza las tareas (por defecto es 4
)
$ lerna publish --concurrency 1
–scope
Scopes una orden para un subconjunto de paquetes.
$ lerna exec --scope my-component -- ls -la
$ lerna run --scope toolbar-* test
–desde
Al ejecutar un script o comando, amplíe la operación a paquetes que se hayan actualizado desde el ref
especificado. Si no se especifica ref
, el valor predeterminado es la última etiqueta.
Enumere el contenido de los paquetes que han cambiado desde la última etiqueta:
$ lerna exec --since -- ls -la
Ejecute las pruebas para todos los paquetes que han cambiado desde master
:
$ lerna run test --since master
Lista todos los paquetes que han cambiado desde entonces some-branch
:
$ lerna ls --since some-branch
Esto puede ser particularmente útil cuando se usa en CI, si puede obtener la rama de destino en la que entrará un PR, porque puede usarlo como la opción ref
a --since
. Esto funciona bien para PRs que van a las ramas master y feature.
ignore ignore
Excluye un subconjunto de paquetes cuando se ejecuta una orden.
$ lerna bootstrap --ignore component-*
La bandera ignore
, cuando se usa con el comando bootstrap
, también se puede configurar en lerna.json
bajo la tecla commands.bootstrap
. El indicador de línea de comandos tendrá precedencia sobre esta opción.
Ejemplo
{ "lerna": "2.0.0", "version": "0.0.0", "commands": { "bootstrap": { "ignore": "component-*" } }}
Sugerencia: El glob se compara con el nombre de paquete definido en
package.json
, no con el nombre de directorio en el que vive el paquete.
–include-filtered-dependencies
Nota: Esto anulará las banderas
--scope
y--ignore
.es decir, Un paquete que coincida con la bandera
--ignore
seguirá siendo arrancado si depende de otro paquete que esté siendo arrancado.
Esto es útil para situaciones en las que desea «configurar» un solo paquete que depende de otros paquetes que se están configurando.
$ lerna bootstrap --scope my-component --include-filtered-dependencies# my-component and all of its dependencies will be bootstrapped
–nivel de registro
Qué nivel de registros informar. En caso de fallo, todos los registros se escriben en lerna-debug.inicie sesión en el directorio de trabajo actual.
Se muestran todos los registros de un nivel superior al de la configuración. El valor predeterminado es «info».
max max-buffer
Establezca una longitud máxima de búfer para cada llamada de proceso subyacente. Útil, por ejemplo, cuando alguien quiere importar un repositorio con una mayor cantidad de confirmaciones mientras ejecuta lerna import
. En ese caso, la longitud del búfer incorporado podría no ser suficiente.
no no-sort
De forma predeterminada, todas las tareas se ejecutan en paquetes en orden topológico para respetar las relaciones de dependencia de los paquetes en cuestión. Los ciclos se rompen en base al mejor esfuerzo de una manera que no se garantiza que sea consistente en todas las invocaciones de Lerna.
La ordenación topológica puede causar cuellos de botella de concurrencia si hay un pequeño número de paquetes con muchos dependientes o si algunos paquetes tardan desproporcionadamente en ejecutarse. La opción --no-sort
deshabilita la ordenación, en lugar de ejecutar tareas en un orden arbitrario con máxima concurrencia.
Esta opción también puede ayudar si ejecuta varios comandos «watch». Dado que lerna run
ejecutará comandos en orden topológico, puede terminar esperando un comando antes de continuar. Esto bloqueará la ejecución cuando ejecute comandos «watch», ya que normalmente nunca terminan. Un ejemplo de un comando «watch» está ejecutando babel
con el indicador CLI --watch
.
ho hoist
Instale dependencias externas que coincidan con glob
en la raíz del repositorio para que estén disponibles para todos los paquetes. Todos los binarios de estas dependencias se vincularán a los directorios de paquetes dependientes node_modules/.bin/
para que estén disponibles para scripts npm. Si la opción está presente pero no se da glob
, el valor predeterminado es **
(ho todo). Esta opción solo afecta al comando bootstrap
.
$ lerna bootstrap --hoist
Para obtener información de fondo sobre --hoist
, consulte la documentación del polipasto.
Nota: Si los paquetes dependen de diferentes versiones de una dependencia externa, se izará la versión más utilizada y se emitirá una advertencia.
no nohoist
No instale dependencias externas que coincidan con glob
en la raíz del repositorio. Esto se puede usar para optar por no izarse para ciertas dependencias.
$ lerna bootstrap --hoist --nohoist=babel-*
–npm-client
Instala dependencias externas usando install
. Debe ser un ejecutable que sepa instalar dependencias npm.
$ lerna bootstrap --npm-client=yarn
También se puede configurar en lerna.json
:
{ ... "npmClient": "yarn"}
–use-workspaces
Permite la integración con Yarn Workspaces (disponible desde [email protected]+).
Los valores de la matriz son los comandos en los que Lerna delegará la operación a Yarn (actualmente solo bootstrapping).
Si --use-workspaces
es true, packages
se anulará con el valor de package.json/workspaces.
También se puede configurar en lerna.json
:
{ ... "npmClient": "yarn", "useWorkspaces": true}
–stream
Salida de flujo de procesos secundarios inmediatamente, con el prefijo del nombre del paquete de origen. Esto permite que la salida de diferentes paquetes se intercale.
$ lerna run watch --stream
–paralelo
Similar a --stream
, pero sin tener en cuenta la concurrencia y la ordenación topológica, ejecutando un comando o script dado inmediatamente en todos los paquetes coincidentes con salida de streaming prefijada. Esta es la bandera preferida para procesos de larga duración, como babel src -d lib -w
que se ejecutan en muchos paquetes.
$ lerna exec --parallel -- babel src -d lib -w
–registry
Cuando se ejecuta con este indicador, los comandos npm reenviados utilizarán el registro especificado para sus paquetes.
Esto es útil si no desea configurar explícitamente la configuración del registro en todo el paquete.archivos json individualmente cuando, por ejemplo, se utilizan registros privados.
temp etiqueta temporal
Cuando se pasa, este indicador alterará el proceso de publicación predeterminado publicando primero todos los paquetes modificados a una etiqueta temporal dist (lerna-temp
) y luego moviendo la(s) nueva (s) a la etiqueta dist predeterminada (latest
).
Esto generalmente no es necesario, ya que Lerna publicará paquetes en orden topológico (todas las dependencias antes que los dependientes) por defecto.
Asistente
Si prefiere alguna guía para la interfaz de línea de comandos (en caso de que esté a punto de comenzar a usar lerna o presentarlo a un nuevo equipo), es posible que desee lerna-wizard. Te guiará a través de una serie de pasos bien definidos: