Cli: File .DS_Store muncul setelah npm publish

Dibuat pada 8 Nov 2019  ·  4Komentar  ·  Sumber: 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

Komentar yang paling membantu

Saya mengalami ini di npm 6.13.0 . pack akan menyertakan file yang diabaikan oleh .gitignore dan/atau .npmignore jika terdaftar di files . Ini paling terlihat ketika file-file itu berada di dalam direktori di mana file-file lain dalam direktori tersebut diinginkan untuk dimasukkan.

Satu solusi yang tampaknya berhasil bagi saya adalah menambahkan "!.DS_Store" sebagai entri terakhir dalam array files (urutan tampaknya penting).

Semua 4 komentar

Saya mengalami ini di npm 6.13.0 . pack akan menyertakan file yang diabaikan oleh .gitignore dan/atau .npmignore jika terdaftar di files . Ini paling terlihat ketika file-file itu berada di dalam direktori di mana file-file lain dalam direktori tersebut diinginkan untuk dimasukkan.

Satu solusi yang tampaknya berhasil bagi saya adalah menambahkan "!.DS_Store" sebagai entri terakhir dalam array files (urutan tampaknya penting).

Saya pikir saya melihat sesuatu yang serupa sejak npm 6.12.1: .gitignore menentukan untuk mengecualikan npm-shrinkwrap.json dan direktori /build/ . package.json mencantumkan direktori build secara eksplisit di bagian files . Sebagai bagian dari prosedur pembuatan saya, saya membuat npm-shrinkwrap.json di direktori root modul, yang kemudian disalin ke direktori build .

Dengan npm 6.4.1, ~6.7, ~6.9, ~6.10, ~6.11 dan 6.12.0 file paket (dari npm pack ) hanya berisi build/npm-shrinkwrap.json , tetapi dengan 6.12.1 dan yang lebih baru termasuk build/npm-shrinkwrap.json _dan_ npm-shrinkwrap.json .

(Komunitas sedang down/read-only sekarang, jika ini bukan masalah yang sama saya ingin meminta maaf!)

sepertinya aneh bagi saya untuk menyertakan file shrinkwrap di bagian mana pun dari paket yang diterbitkan, tetapi itu hanya akan berpengaruh di root - mengapa proses build Anda meletakkan salinan di sana?

Itu tentu pertanyaan yang bagus.

Saya memilikinya di direktori build/ sebagai bagian dari langkah build lain yang mengambil direktori build/ dan membuat gambar wadah buruh pelabuhan. Idenya adalah untuk menjalankan npm test dll sekali di luar buruh pelabuhan, dan kemudian membuat file shrinkwrap mempercepat proses buruh pelabuhan (dengan membiarkan npm install di dalam buruh pelabuhan mengambil file yang sama persis). Ini kemudian juga akan berfungsi sebagai dokumentasi tentang apa yang digunakan untuk membangun. Prosesnya cukup menyalin npm-shrinkwrap.json ke direktori build.

Perbaikan untuk saya sekarang adalah menggunakan mv daripada cp untuk memasukkan file ke direktori build/ .

EDIT: Perbaiki/Penyelesaian untuk saya berfungsi, tetapi saya agak khawatir bahwa karena perubahan perilaku ini, paket-paket pada pendaftar dapat secara tidak sengaja berisi file yang seharusnya tidak dikandungnya - saya menemukan ini secara tidak sengaja karena bagian lain sistem saya memeriksa keberadaan file npm-shrinkwrap.json .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat