Original bug ticket: [https://npm.community/t/831](https://npm.community/t/831)
Originally filed: 2018-07-23T20:19:41.160Z
Me encuentro con esto en npm 6.13.0. pack
incluirá archivos ignorados por .gitignore
y / o .npmignore
si se enumeran en files
. Es más notorio cuando esos archivos están dentro de un directorio donde se desea incluir otros archivos en el directorio.
Una solución que parece funcionar para mí es agregar "!.DS_Store"
como la última entrada en la matriz files
(el orden parece importar).
Creo que estoy viendo algo similar desde npm 6.12.1: Mi .gitignore
especifica excluir npm-shrinkwrap.json
y el directorio /build/
. package.json
enumera el directorio build
explícitamente en la sección files
. Como parte de mi procedimiento de compilación, estoy produciendo un npm-shrinkwrap.json
en el directorio raíz del módulo, que luego se copia en el directorio build
.
Con npm 6.4.1, ~ 6.7, ~ 6.9, ~ 6.10, ~ 6.11 y 6.12.0 el archivo empaquetado (de npm pack
) solo contiene build/npm-shrinkwrap.json
, pero con 6.12.1 y posteriores incluye tanto build/npm-shrinkwrap.json
_y_ npm-shrinkwrap.json
.
(La comunidad está inactiva / solo lectura en este momento, si este no es el mismo problema, me gustaría disculparme).
Me parece extraño incluir un archivo shrinkwrap en cualquier parte de un paquete publicado, pero de todos modos solo tendría un efecto en la raíz: ¿por qué su proceso de compilación coloca una copia allí?
Ciertamente es una buena pregunta.
Lo tengo en el directorio build / como parte de otro paso de compilación que toma el directorio build / y crea una imagen de contenedor docker. La idea era ejecutar npm test
etc. una vez fuera de la ventana acoplable, y luego hacer que el archivo shrinkwrap acelerara el proceso de la ventana acoplable (permitiendo que la ventana acoplable interna npm install
recoja exactamente los mismos archivos). Esto también serviría como documentación sobre lo que se utilizó para la construcción. El proceso simplemente copió npm-shrinkwrap.json en el directorio de compilación.
La solución para mí ahora es usar mv
lugar de cp
para colocar el archivo en el directorio build/
.
EDITAR: Fix / Work-around para mí funciona, pero me preocupa un poco que, debido a este cambio en el comportamiento, los paquetes en los registros podrían contener inadvertidamente archivos que no deberían contener; encontré esto por accidente debido a otra parte de mi sistema comprobando la presencia de archivos npm-shrinkwrap.json
.
Comentario más útil
Me encuentro con esto en npm 6.13.0.
pack
incluirá archivos ignorados por.gitignore
y / o.npmignore
si se enumeran enfiles
. Es más notorio cuando esos archivos están dentro de un directorio donde se desea incluir otros archivos en el directorio.Una solución que parece funcionar para mí es agregar
"!.DS_Store"
como la última entrada en la matrizfiles
(el orden parece importar).