โหนดอัพเดตแพ็กเกจเฉพาะ


187

ฉันต้องการที่จะปรับปรุงเบราว์เซอร์ซิงค์ของฉันโดยไม่มีการปรับปรุงทุกแพคเกจโหนดของฉัน ฉันจะบรรลุสิ่งนี้ได้อย่างไร Browser-sync เวอร์ชั่นปัจจุบันของฉันไม่มี Browser-sync GUI :(

├─┬ browser-sync@1.9.2
 ├── browser-sync-client@1.0.2

5
npm install browser-sync@latestอาจจะ. ควรเขียนทับมันด้วยสิ่งล่าสุด (สมมุติว่ามีการแตกร้าวหรือไม่)
rlemon

คำตอบ:


291

เวลาส่วนใหญ่คุณสามารถเพียงแค่อัพเดต npm (หรืออัพเกรดเส้นด้าย ) โมดูลเพื่อรับการเปลี่ยนแปลงที่ไม่ทำลายล่าสุด(โดยใช้ semver ที่ระบุใน package.json ของคุณ) (<- อ่านส่วนสุดท้ายนั้นอีกครั้ง)

npm update browser-sync
-------
yarn upgrade browser-sync
  • ใช้npm|yarn outdatedเพื่อดูว่าโมดูลใดมีรุ่นที่ใหม่กว่า
  • ใช้npm update|yarn upgrade(ไม่มีชื่อแพ็คเกจ) เพื่ออัพเดตโมดูลทั้งหมด
  • รวม--save-dev|--devถ้าคุณต้องการบันทึกหมายเลขรุ่นที่ใหม่กว่าลงในแพ็คเกจ.jsonของคุณ (หมายเหตุ: ตั้งแต่ npm v5.0 นี่เป็นสิ่งที่จำเป็นเท่านั้นdevDependencies)

การอัพเกรดรุ่นใหญ่:

ในกรณีของคุณดูเหมือนว่าคุณต้องการเวอร์ชันหลักถัดไป (v2.xx) ซึ่งมีแนวโน้มว่าจะมีการเปลี่ยนแปลงและคุณจะต้องอัปเดตแอปของคุณเพื่อรองรับการเปลี่ยนแปลงเหล่านั้น คุณสามารถติดตั้ง / บันทึกล่าสุด2.x.xโดยทำ:

npm install browser-sync@2 --save-dev
-------
yarn add browser-sync@2 --dev

... หรือล่าสุด2.1.xโดยทำ:

npm install browser-sync@2.1 --save-dev
-------
yarn add browser-sync@2.1 --dev

... หรือล่าสุดและยิ่งใหญ่ที่สุดโดยทำ:

npm install browser-sync@latest --save-dev
-------
yarn add browser-sync@latest --dev

หมายเหตุ:คนสุดท้ายไม่แตกต่างจากการทำสิ่งนี้:

npm uninstall browser-sync --save-dev
npm install browser-sync --save-dev
-------
yarn remove browser-sync --dev
yarn add browser-sync --dev

--save-devส่วนหนึ่งเป็นสิ่งที่สำคัญ สิ่งนี้จะถอนการติดตั้งลบค่าออกจาก package.json ของคุณจากนั้นติดตั้งเวอร์ชันล่าสุดและบันทึกค่าใหม่ไปยัง package.json ของคุณ


1
npm update browser-sync --save-devจะทำงานเพื่ออัปเดตเป็นเวอร์ชันหลักและบันทึก package-lock.json (หากมีอยู่)
Wildhoney

5
@Wildhoney - ฉันกำลังกราบไม่เห็นด้วยกับคุณ (ส่วนใหญ่) - npm updateจะติดตั้งล่าสุดที่เกี่ยวข้องของ semver วิธีเดียวที่จะอัปเดตเป็นเวอร์ชันหลักถัดไปคือทำอย่างชัดเจนตามที่ฉันอธิบายไว้ข้างต้น หากคุณไม่เคยติดตั้งแพ็กเกจและลองอัปเดต / บันทึกแพคเกจนั้นจะติดตั้งเวอร์ชันล่าสุด แต่นั่นไม่ใช่เรื่องธรรมดา นอกจากนี้ยังมี semver ที่ไม่ค่อยได้ใช้สำหรับการระบุรุ่นหลักล่าสุด - มันจะมีลักษณะเช่นนี้ใน package.json ของคุณ: browser-sync: '*'หรือbrowser-sync: 'x'- แต่ฉันไม่แนะนำให้ทำเช่นนั้น
Ryan Wheale

1
@RyanWheale โปรดทราบว่าเนื่องจาก--save-devไม่จำเป็นต้องใช้ npm@5.0.0 เนื่องจากจะได้รับการบันทึกลงใน package.json โดยอัตโนมัติ ( docs.npmjs.com/cli/update )
lakesare

@lakesare จริง ณ npm@5.0.0 ค่าเริ่มต้นคือ - บันทึกไม่ใช่ --save-dev คุณยังต้องระบุ --save-dev หากคุณต้องการสร้างการพึ่งพาเท่านั้น
Joshua Harris

2
npm ติดตั้ง some-package @ ล่าสุด --save-dev ใช้งานได้สำหรับฉัน ขอบคุณ
ashilon

3

ใช้npm outdated เพื่อดูแพ็คเกจปัจจุบันและเวอร์ชั่นล่าสุดทั้งหมด


จากนั้นnpm i packageName@versionNumberในการติดตั้งรุ่นที่เฉพาะเจาะจง: ตัวอย่างเช่น npm i browser-sync@2.1.0

หรือnpm i packageName@latestการติดตั้งรุ่นล่าสุด: ตัวอย่างเช่น npm i browser-sync@latest


-2

คุณสามารถทำได้ด้วยตนเองเสมอ เหล่านี้คือขั้นตอน:

  • ไปที่หน้าแพคเกจ NPM และค้นหาลิงก์ GitHub
  • ตอนนี้ดาวน์โหลดเวอร์ชันล่าสุดโดยใช้ลิงค์ดาวน์โหลด GitHub หรือโดย clonning git clone github_url
  • คัดลอกแพ็คเกจไปยังnode_modulesโฟลเดอร์ของคุณเช่นnode_modules/browser-sync

ตอนนี้มันควรจะทำงานให้คุณ เพื่อให้แน่ใจว่ามันจะไม่แตกในอนาคตเมื่อคุณทำnpm iต่อไปสองขั้นตอนต่อไป:

  • ตรวจสอบเวอร์ชั่นของแพ็คเกจใหม่โดยการอ่านpackage.jsonไฟล์ในโฟลเดอร์
  • เปิดโครงการของคุณpackage.jsonและตั้งค่ารุ่นเดียวกันกับที่ปรากฏในdependenciesส่วนของคุณpackage.json

ในขณะที่ยังไม่แนะนำให้ทำด้วยตนเอง บางครั้งเป็นการดีที่จะเข้าใจว่าสิ่งต่าง ๆ ทำงานภายใต้ประทุนอย่างไรเพื่อให้สามารถแก้ไขสิ่งต่าง ๆ ได้ ฉันพบว่าตัวเองทำมันเป็นครั้งคราว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.