Original bug ticket: [https://npm.community/t/831](https://npm.community/t/831)
Originally filed: 2018-07-23T20:19:41.160Z
أواجه هذا في npm 6.13.0. pack
سيتضمن الملفات التي تجاهلها .gitignore
و / أو .npmignore
إذا كانت مدرجة في files
. يكون ذلك أكثر وضوحًا عندما تكون هذه الملفات داخل دليل حيث من المطلوب تضمين الملفات الأخرى في الدليل.
أحد الحلول التي يبدو أنها تعمل بالنسبة لي هو إضافة "!.DS_Store"
كآخر إدخال في مصفوفة files
(يبدو أن الترتيب مهم).
أفكر في أنني أرى شيئًا مشابهًا منذ Npm 6.12.1: تم تعيين .gitignore
الخاص بي لاستبعاد npm-shrinkwrap.json
/build/
ودليل package.json
قائمة يفعل build
دليل صراحة في files
القسم. كجزء من إجراء الإنشاء ، أقوم بإنتاج npm-shrinkwrap.json
في الدليل الجذر للوحدة النمطية ، والذي يتم نسخه بعد ذلك إلى الدليل build
.
باستخدام npm 6.4.1 و ~ 6.7 و ~ 6.9 و ~ 6.10 و ~ 6.11 و 6.12.0 ، يحتوي الملف المجمّع (من npm pack
) فقط على build/npm-shrinkwrap.json
، ولكن مع 6.12.1 وما بعده يتضمن كلا من build/npm-shrinkwrap.json
_ و_ npm-shrinkwrap.json
.
(المجتمع معطل / للقراءة فقط في الوقت الحالي ، إذا لم تكن هذه هي نفس المشكلة ، فأود أن أعتذر!)
يبدو من الغريب بالنسبة لي تضمين ملف shrinkwrap في أي جزء من الحزمة المنشورة ، ولكن سيكون له تأثير فقط في الجذر على أي حال - لماذا تضع عملية الإنشاء لديك نسخة هناك؟
هذا بالتأكيد سؤال جيد.
لدي في build / directory كجزء من خطوة بناء أخرى تأخذ بناء / دليل وتنشئ صورة حاوية عامل ميناء. كانت الفكرة هي تشغيل npm test
وما إلى ذلك مرة واحدة خارج عامل الإرساء ، ثم جعل ملف shrinkwrap يعمل على تسريع عملية عامل الإرساء (عن طريق السماح لـ npm install
داخل عامل الإرساء بالتقاط نفس الملفات بالضبط). سيكون هذا أيضًا بمثابة توثيق حول ما تم استخدامه للبناء. نسخت العملية ببساطة npm-shrinkwrap.json في دليل الإنشاء.
الإصلاح بالنسبة لي الآن هو استخدام mv
بدلاً من cp
لإحضار الملف إلى الدليل build/
.
تحرير: يعمل الإصلاح / الحل البديل بالنسبة لي ، ولكني قلق بعض الشيء من أنه بسبب هذا التغيير في حزم السلوك في السجلات يمكن أن تحتوي عن غير قصد على ملفات لا ينبغي أن تحتوي عليها - لقد وجدت هذا عن طريق الصدفة بسبب جزء آخر من نظامي يتحقق من وجود ملفات npm-shrinkwrap.json
.
التعليق الأكثر فائدة
أواجه هذا في npm 6.13.0.
pack
سيتضمن الملفات التي تجاهلها.gitignore
و / أو.npmignore
إذا كانت مدرجة فيfiles
. يكون ذلك أكثر وضوحًا عندما تكون هذه الملفات داخل دليل حيث من المطلوب تضمين الملفات الأخرى في الدليل.أحد الحلول التي يبدو أنها تعمل بالنسبة لي هو إضافة
"!.DS_Store"
كآخر إدخال في مصفوفةfiles
(يبدو أن الترتيب مهم).