Original bug ticket: [https://npm.community/t/831](https://npm.community/t/831)
Originally filed: 2018-07-23T20:19:41.160Z
Estou encontrando isso no npm 6.13.0. pack
incluirá arquivos ignorados por .gitignore
e / ou .npmignore
se listados em files
. É mais perceptível quando esses arquivos estão dentro de um diretório onde outros arquivos do diretório devem ser incluídos.
Uma solução alternativa que parece funcionar para mim é adicionar "!.DS_Store"
como a última entrada no array files
(a ordem parece importar).
Estou pensando que estou vendo algo semelhante desde o npm 6.12.1: Meu .gitignore
especifica para excluir npm-shrinkwrap.json
e o diretório /build/
. package.json
lista o diretório build
explicitamente na seção files
. Como parte do meu procedimento de construção, estou produzindo um npm-shrinkwrap.json
no diretório raiz do módulo, que então é copiado para o diretório build
.
Com npm 6.4.1, ~ 6.7, ~ 6.9, ~ 6.10, ~ 6.11 e 6.12.0, o arquivo empacotado (de npm pack
) contém apenas build/npm-shrinkwrap.json
, mas com 6.12.1 e posterior inclui build/npm-shrinkwrap.json
_and_ npm-shrinkwrap.json
.
(A comunidade está fora do ar / somente leitura agora, se este não for o mesmo problema, gostaria de pedir desculpas!)
parece estranho para mim incluir um arquivo shrinkwrap em qualquer parte de um pacote publicado, mas ele só teria efeito na raiz de qualquer maneira - por que seu processo de construção coloca uma cópia lá?
Essa é certamente uma boa pergunta.
Eu o tenho no diretório build / como parte de outra etapa de build que pega o diretório build / e cria uma imagem de contêiner do docker. A ideia era executar npm test
etc uma vez fora do docker e, em seguida, fazer com que o arquivo shrinkwrap acelerasse o processo do docker (permitindo que npm install
dentro do docker coletasse exatamente os mesmos arquivos). Isso também serviria como documentação sobre o que foi usado para a construção. O processo simplesmente copiou o npm-shrinkwrap.json para o diretório de construção.
A correção para mim agora é usar mv
vez de cp
para colocar o arquivo no diretório build/
.
EDIT: Reparar / Contornar para mim funciona, mas estou um pouco preocupado que, devido a essa mudança nos pacotes de comportamento nos registros, possam conter inadvertidamente arquivos que não deveriam conter - eu descobri isso por acidente por causa de outra parte do meu sistema verificando a presença de npm-shrinkwrap.json
arquivos.
Comentários muito úteis
Estou encontrando isso no npm 6.13.0.
pack
incluirá arquivos ignorados por.gitignore
e / ou.npmignore
se listados emfiles
. É mais perceptível quando esses arquivos estão dentro de um diretório onde outros arquivos do diretório devem ser incluídos.Uma solução alternativa que parece funcionar para mim é adicionar
"!.DS_Store"
como a última entrada no arrayfiles
(a ordem parece importar).