Cli: .DS_Store-Dateien werden nach der npm-Veröffentlichung angezeigt

Erstellt am 8. Nov. 2019  ·  4Kommentare  ·  Quelle: 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

Hilfreichster Kommentar

Ich begegne diesem in npm 6.13.0 . pack schließt Dateien ein, die von .gitignore und/oder .npmignore ignoriert werden, wenn sie in files . Es ist am auffälligsten, wenn sich diese Dateien in einem Verzeichnis befinden, in das andere Dateien in dem Verzeichnis aufgenommen werden sollen.

Eine Problemumgehung, die für mich zu funktionieren scheint, besteht darin, "!.DS_Store" als letzten Eintrag im Array files hinzuzufügen (die Reihenfolge scheint wichtig zu sein).

Alle 4 Kommentare

Ich begegne diesem in npm 6.13.0 . pack schließt Dateien ein, die von .gitignore und/oder .npmignore ignoriert werden, wenn sie in files . Es ist am auffälligsten, wenn sich diese Dateien in einem Verzeichnis befinden, in das andere Dateien in dem Verzeichnis aufgenommen werden sollen.

Eine Problemumgehung, die für mich zu funktionieren scheint, besteht darin, "!.DS_Store" als letzten Eintrag im Array files hinzuzufügen (die Reihenfolge scheint wichtig zu sein).

Ich denke, ich sehe etwas Ähnliches seit npm 6.12.1: Mein .gitignore gibt an, npm-shrinkwrap.json und das /build/ Verzeichnis auszuschließen. package.json listet das Verzeichnis build explizit im Abschnitt files auf. Als Teil meiner Build-Prozedur erzeuge ich ein npm-shrinkwrap.json im Modul-Root-Verzeichnis, das dann in das build Verzeichnis kopiert wird.

Mit npm 6.4.1, ~6.7, ~6.9, ~6.10, ~6.11 und 6.12.0 enthält die gepackte Datei (ab npm pack ) nur build/npm-shrinkwrap.json , aber ab 6.12.1 und höher beinhaltet sowohl build/npm-shrinkwrap.json _und_ npm-shrinkwrap.json .

(Community ist gerade down/schreibgeschützt, wenn dies nicht das gleiche Problem ist, möchte ich mich entschuldigen!)

Es erscheint mir seltsam, eine Shrinkwrap-Datei in einen beliebigen Teil eines veröffentlichten Pakets einzufügen, aber es würde sowieso nur einen Effekt im Stammverzeichnis haben - warum legt Ihr Build-Prozess eine Kopie dort ab?

Das ist sicherlich eine gute Frage.

Ich habe es im build/-Verzeichnis als Teil eines anderen Build-Schritts, der das build/-Verzeichnis verwendet und ein Docker-Container-Image erstellt. Die Idee war, npm test usw. einmal außerhalb des Dockers auszuführen und dann die Shrinkwrap-Datei den Docker-Prozess beschleunigen zu lassen (indem das npm install im Docker genau die gleichen Dateien aufnimmt). Dies würde dann auch als Dokumentation über die Baunutzung dienen. Der Prozess kopierte einfach die npm-shrinkwrap.json in das Build-Verzeichnis.

Fix für mich ist jetzt, mv anstelle von cp zu verwenden, um die Datei in das Verzeichnis build/ .

BEARBEITEN: Fix/Workaround für mich funktioniert, aber ich bin ein bisschen besorgt, dass Pakete in den Registrierungen aufgrund dieser Verhaltensänderung versehentlich Dateien enthalten könnten, die sie nicht enthalten sollten - ich habe dies zufällig aufgrund eines anderen Teils gefunden meines Systems auf das Vorhandensein von npm-shrinkwrap.json Dateien überprüft.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

DullReferenceException picture DullReferenceException  ·  4Kommentare

FaizenR picture FaizenR  ·  3Kommentare

chrisspen picture chrisspen  ·  3Kommentare

darcyclarke picture darcyclarke  ·  3Kommentare

jaydenseric picture jaydenseric  ·  3Kommentare