มีตัวเลือก npm หรือไม่ที่จะปิดใช้งานสคริปต์ postinstall ขณะติดตั้งแพคเกจ? หรือสำหรับการเขียนฟิลด์ใด ๆ จาก package.json
มีตัวเลือก npm หรือไม่ที่จะปิดใช้งานสคริปต์ postinstall ขณะติดตั้งแพคเกจ? หรือสำหรับการเขียนฟิลด์ใด ๆ จาก package.json
คำตอบ:
ไม่สามารถปิดการใช้งานpostinstall
สคริปต์เท่านั้น อย่างไรก็ตามคุณสามารถปิดการใช้งานสคริปต์ทั้งหมดโดยใช้:
$ npm install --ignore-scripts
ดังที่ delbertooo กล่าวถึงในความคิดเห็นสิ่งนี้ยังปิดใช้งานสคริปต์ของการอ้างอิง
--ignore-scripts
ปิดการใช้งานสคริปต์ทั้งหมด - แม้กระทั่งจากการอ้างอิงของคุณ หากการอ้างอิงของคุณจำเป็นต้องเรียกใช้สคริปต์เพื่อเช่นติดตั้งไบนารีบางอย่างพวกเขาอาจแตก / ไม่สมบูรณ์
--ignore-scripts
หรือตัวเลือกการกำหนดค่าที่เกี่ยวข้อง (ซึ่งฉันตั้งไว้ทั่วโลก) ก็จะหมายถึงว่าnpm run start
จะไม่ทำอะไรเลยและรายงานความสำเร็จอย่างเงียบ ๆ ตะลึงพรึงเพริด.
คุณยังสามารถเปิดใช้งานการตั้งค่าในไฟล์กำหนดค่า npm
npm config set ignore-scripts true
หมายเหตุ: สิ่งนี้จะปิดใช้งานสคริปต์สำหรับแพ็คเกจ NPM ทั้งหมด
npm run …
- มันจะไม่ทำอะไรเลยโดยไม่มีการเตือนใด ๆ
ในการทำเช่นนี้กับห้องสมุดของคุณฉันขอแนะนำสิ่งที่ง่าย ๆ เช่น:
#!/usr/bin/env bash
## this is your postinstall.sh script:
set -e;
if [ "$your_pkg_skip_postinstall" == "yes" ]; then
echo "skipping your package's postinstall routine.";
exit 0;
fi
จากนั้นทำการติดตั้ง NPM ด้วย:
your_pkg_skip_postinstall="yes" npm install
ฉันต้องการที่จะปิดการใช้งานสคริปต์ postinstall สำหรับโครงการของฉัน npm install
แต่อยากสคริปต์ทั้งหมดของการอ้างอิงโครงการของฉันที่จะทำงานเมื่อฉันทำ นี่คือสิ่งที่ฉันทำ
./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
ตอนนี้เพียงแค่ตั้งค่าตัวแปรสภาพแวดล้อม SKIP_BUILD = 1 เพื่อป้องกันไม่ให้แพคเกจของคุณจากการสร้างและการพึ่งพาของคุณจะสร้างได้ดี
SKIP_BUILD=1 npm install