Cli: Os arquivos .DS_Store aparecem após a publicação npm

Criado em 8 nov. 2019  ·  4Comentários  ·  Fonte: npm/cli

  Original bug ticket: [https://npm.community/t/831](https://npm.community/t/831)
  Originally filed: 2018-07-23T20:19:41.160Z
Bug Community

Comentários muito úteis

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).

Todos 4 comentários

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.

Esta página foi útil?
0 / 5 - 0 avaliações