Para el lector rápida: este control de calidad es sobre el campo package.json bundledDependencies, no sobre la package.
Qué hacer bundledDependencies
"bundledDependencies" son exactamente lo que su nombre implica. Dependencias que deberían estar dentro de tu proyecto. Entonces la funcionalidad es básicamente la misma que las dependencias normales. También se empaquetarán al ejecutar npm pack
.
Cuando se les utilice
dependencias normales suelen instalarse desde el registro NPM. dependencias Así paquetes son útiles cuando:
- desea volver a utilizar una biblioteca de terceros que no proviene del registro de la NGP, o que se modificó
- desea volver a utilizar sus propios proyectos como módulos
- quiere distribuir algunos archivos con el módulo
de esta manera, usted no tiene que crear (y mantener) su propio repositorio de la NGP, pero obtener los mismos beneficios que se obtienen de los paquetes de la NGP.
Cuando no de utilizar las dependencias
Al desarrollar liado, no creo que el punto principal es prevenir cambios accidentales sin embargo. Tenemos mejores herramientas para eso, a saber, repositorios de código (git, mercurial, svn ...) o ahora bloquear archivos.
Para anclar sus versiones de paquetes, puede utilizar:
Opción 1: Utilice la versión más nueva NGP 5 que viene con el nodo 8. Utiliza un archivo package-lock.json
(ver el node blog y la liberación de nodo 8)
Opción2: use yarn en lugar de npm
. Es un administrador de paquetes de Facebook, más rápido que npm
y usa un archivo yarn.lock
. Utiliza el mismo package.json
de lo contrario.
Esto es comparable a ficheros de bloqueo en otros gestores de paquetes como Bundler o carga. Es similar al npm-shrinkwrap.json de npm, sin embargo, no es con pérdida y genera resultados reproducibles.
npm
realidad copiaron esa característica de yarn
, entre otras cosas.
- Opción 3: este fue el enfoque recomendado anteriormente, que ya no recomiendo. La idea era usar
npm shrinkwrap
la mayor parte del tiempo, y algunas veces poner todo, incluida la carpeta node_module, en el depósito de código. O posiblemente use shrinkpack. Las mejores prácticas en ese momento se discutieron en el sitio web node.js blog y en los sitios web joyent developer.
Ver también
Esto es un poco fuera del alcance de la cuestión, pero me gustaría hablar de la última clase de dependencias (que yo sepa): peer dependencies. También vea esto related SO question y posiblemente el los documentos de yarn
en bundledDependencies.
'Si esto se deletrea "bundleDependencies", entonces eso también es honorable.' Gran documentación! –
Y sin embargo, de alguna manera, arreglarlo solo para leer "también se honra" se siente triste. En un apuro, si pedí ayuda a un samurai o caballero, definitivamente me gustaría que venga con armas y armaduras compatibles, y que sea honorable. –
"Supongo que si queremos estar absolutamente seguros de que obtendremos la versión correcta, incluso si el módulo al que hacemos referencia se elimina", de repente tiene mucho peso: http://blog.npmjs.org/post/141577284765/kik-left- pad-and-npm – joews