NPM
- จัดการแพ็คเกจแต่ไม่ทำให้ชีวิตง่ายขึ้นในการดำเนินการใด ๆ
NPX
- เครื่องมือสำหรับการดำเนินการแพคเกจโหนด
NPX
มาพร้อมกับNPM
รุ่น5.2+
NPM
ด้วยตัวเองไม่เพียง แต่เรียกใช้แพคเกจใด ๆ มันไม่เรียกใช้แพคเกจใด ๆ ในความเป็นจริง หากคุณต้องการเรียกใช้แพคเกจโดยใช้ NPM คุณต้องระบุแพ็คเกจนั้นในpackage.json
ไฟล์ของคุณ
เมื่อติดตั้ง executables ผ่านแพ็คเกจ NPM แล้ว NPM จะเชื่อมโยงไปยังพวกเขา:
- การติดตั้งในเครื่องมีการสร้าง "ลิงก์" ใน
./node_modules/.bin/
ไดเรกทอรี
- การติดตั้งทั่วโลกมี "ลิงก์" ที่สร้างจาก
bin/
ไดเรกทอรีทั่วโลก(เช่น/usr/local/bin
) บน Linux หรือที่%AppData%/npm
บน Windows
เอกสารที่คุณควรอ่าน
NPM:
หนึ่งอาจติดตั้งแพคเกจภายในโครงการบางอย่าง:
npm install some-package
ตอนนี้สมมติว่าคุณต้องการให้ NodeJS ดำเนินการแพ็คเกจจากบรรทัดคำสั่ง:
$ some-package
ข้างต้นจะล้มเหลว เพียงติดตั้งทั่วโลกแพคเกจที่สามารถดำเนินการได้โดยการพิมพ์ชื่อของพวกเขาเท่านั้น
ในการแก้ไขปัญหานี้และเปิดใช้งานคุณต้องพิมพ์เส้นทางภายในเครื่อง:
$ ./node_modules/.bin/some-package
คุณสามารถเรียกใช้แพคเกจที่ติดตั้งในท้องที่โดยทางเทคนิคโดยการแก้ไขpackages.json
ไฟล์ของคุณและเพิ่มแพ็คเกจนั้นในscripts
ส่วน:
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
จากนั้นเรียกใช้สคริปต์โดยใช้npm run-script
(หรือnpm run
):
npm run some-package
NPX:
npx
จะตรวจสอบว่า<command>
มีอยู่ใน$PATH
หรือในไบนารีโครงการของท้องถิ่นและดำเนินการ ดังนั้นสำหรับตัวอย่างข้างต้นหากคุณต้องการใช้งานแพคเกจที่ติดตั้งในเครื่องsome-package
สิ่งที่คุณต้องทำคือพิมพ์:
npx some-package
ข้อได้เปรียบที่สำคัญอีกข้อหนึ่งของnpx
ความสามารถในการใช้งานแพคเกจที่ไม่ได้ติดตั้งไว้ก่อนหน้านี้:
$ npx create-react-app my-app
ตัวอย่างด้านบนจะสร้างreact
แอปสำเร็จรูปในเส้นทางที่คำสั่งทำงานและทำให้แน่ใจว่าคุณใช้ตัวสร้างหรือเครื่องมือสร้างเวอร์ชันล่าสุดโดยไม่ต้องอัพเกรดทุกครั้งที่คุณใช้งาน
คำถามที่เกี่ยวข้อง:
- วิธีใช้แพ็คเกจที่ติดตั้งไว้ใน node_modules
- NPM: วิธีการที่จะหาโฟลเดอร์. / node /modules/.bin?
- คุณรันไฟล์ js โดยใช้สคริปต์ npm ได้อย่างไร
create-react-app
เป็นเครื่องกำเนิดไฟฟ้าnpx
ไปที่อินเทอร์เน็ตดาวน์โหลดแพ็คเกจชั่วคราวเพื่อให้สามารถเรียกใช้งานได้ ( np x ) สิ่งที่คุณได้รับ (และต้องการ) คือผลลัพธ์ซึ่งถูกบันทึกไว้ในเครื่องที่คุณเรียกใช้คำสั่ง