Cli: Les fichiers .DS_Store s'affichent après la publication npm

Créé le 8 nov. 2019  ·  4Commentaires  ·  Source: 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

Commentaire le plus utile

Je rencontre cela dans npm 6.13.0 . pack inclura les fichiers ignorés par .gitignore et/ou .npmignore s'ils sont répertoriés dans files . Cela est particulièrement visible lorsque ces fichiers se trouvent dans un répertoire où l'on souhaite inclure d'autres fichiers du répertoire.

Une solution de contournement qui semble fonctionner pour moi consiste à ajouter "!.DS_Store" comme dernière entrée dans le tableau files (l'ordre semble avoir de l'importance).

Tous les 4 commentaires

Je rencontre cela dans npm 6.13.0 . pack inclura les fichiers ignorés par .gitignore et/ou .npmignore s'ils sont répertoriés dans files . Cela est particulièrement visible lorsque ces fichiers se trouvent dans un répertoire où l'on souhaite inclure d'autres fichiers du répertoire.

Une solution de contournement qui semble fonctionner pour moi consiste à ajouter "!.DS_Store" comme dernière entrée dans le tableau files (l'ordre semble avoir de l'importance).

Je pense que je vois quelque chose de similaire depuis npm 6.12.1 : Mon .gitignore spécifie d'exclure npm-shrinkwrap.json et le répertoire /build/ . package.json répertorie explicitement le répertoire build dans la section files . Dans le cadre de ma procédure de construction, je produis un npm-shrinkwrap.json dans le répertoire racine du module, qui est ensuite copié dans le répertoire build .

Avec npm 6.4.1, ~6.7, ~6.9, ~6.10, ~6.11 et 6.12.0, le fichier packagé (à partir de npm pack ) ne contient que build/npm-shrinkwrap.json , mais avec 6.12.1 et versions ultérieures il comprend à la fois build/npm-shrinkwrap.json _et_ npm-shrinkwrap.json .

(La communauté est en panne/en lecture seule en ce moment, si ce n'est pas le même problème, je voudrais m'excuser !)

il me semble étrange d'inclure un fichier d'emballage dans n'importe quelle partie d'un package publié, mais cela n'aurait de toute façon un effet qu'à la racine - pourquoi votre processus de construction en place-t-il une copie ?

C'est certainement une bonne question.

Je l'ai dans le répertoire build/ dans le cadre d'une autre étape de build qui prend le répertoire build/ et crée une image de conteneur docker. L'idée était d'exécuter npm test etc une fois en dehors du docker, puis de faire en sorte que le fichier d'emballage accélère le processus du docker (en laissant le npm install intérieur du docker récupérer exactement les mêmes fichiers). Cela servirait alors également de documentation sur ce qui a été utilisé pour la construction. Le processus a simplement copié le npm-shrinkwrap.json dans le répertoire de construction.

Le correctif pour moi maintenant consiste à utiliser mv plutôt que cp pour placer le fichier dans le répertoire build/ .

EDIT : correction/solution de contournement pour moi fonctionne, mais je crains un peu qu'en raison de ce changement de comportement, les packages sur les registres puissent contenir par inadvertance des fichiers qu'ils ne devraient pas contenir - j'ai trouvé cela par accident à cause d'une autre partie de mon système vérifiant la présence de fichiers npm-shrinkwrap.json .

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

ahuglajbclajep picture ahuglajbclajep  ·  3Commentaires

jaydenseric picture jaydenseric  ·  3Commentaires

zypA13510 picture zypA13510  ·  4Commentaires

Cohen-Carlisle picture Cohen-Carlisle  ·  4Commentaires

savek-cc picture savek-cc  ·  4Commentaires