“ การกำหนดค่า npm config set registry https://registry.npmjs.org/” ไม่ทำงานในไฟล์ windows bat


193

ฉันสร้าง a.bat บน windows 7 เนื้อหาของ a.bat คือ:

@echo off
npm config set registry https://registry.npmjs.org/

จากนั้นเรียกใช้ a.bat แต่ไม่ทำงานฉันพบว่าคำว่า "set" เป็นคำหลักพิเศษสำหรับ npm และ bat มีวิธีใดบ้างในการแก้ไขคำถามนี้


296
ไม่มีใครมาโพสต์นี้ทุกครั้งที่พวกเขาต้องการที่จะเห็นสิ่งที่ URL รีจิสทรี NPM คืออะไร? ฮ่าฮ่า
kevingilbert100

9
FYI: ฉันต้องการรีจิสตรีใน. com: เช่นhttps://registry.npmjs.com/แทนที่จะเป็นhttps://registry.npmjs.org/
infl3x

@ infl3x ทำไม ความแตกต่างคืออะไร
htho

7
@ kevingilbert100 npm config get registryเพื่อทราบ URL รีจิสตรี
Sridhar

2
@Sridhar Nope มีเพียงชุดรีจีสทรีปัจจุบันเท่านั้นไม่ใช่รีจีสทรี "Official" npm
Emobe

คำตอบ:


224

คุณไม่ควรเปลี่ยนรีจิสทรี npm โดยใช้.batไฟล์ ให้ลองใช้แก้ไข.npmrcไฟล์ซึ่งเป็นค่าที่ใช้npmแทน คำสั่งที่ถูกต้องสำหรับการเปลี่ยนรีจิสทรีคือ

npm config set registry <registry url>

คุณสามารถค้นหาข้อมูลเพิ่มเติมด้วยnpm help configคำสั่งตรวจสอบสิทธิ์เมื่อและถ้าคุณกำลังเรียกใช้.batไฟล์ด้วยวิธีนี้


อาจจะเป็นวิธีการที่ผมใช้ไม่เหมาะสำหรับคำถามของฉัน แต่ยังคงขอบคุณสำหรับคำตอบของคุณ :)
mopduan

2
@MarcellodeSales ลองnpm config set registry=<registry url>
L1fescape

7
ชิ้นconfigส่วนไม่จำเป็นสามารถเรียกใช้เพียงnpm get registryเพื่อดูปัจจุบันของคุณและnpm set registry https://registry.npmjs.org/ตั้งค่ากลับเป็นค่าเริ่มต้น
AlecRust

คือ npm config set registry <local node_modules folder> เป็นไปได้ หากฉันไม่ต้องการดาวน์โหลดอะไรจากอินเทอร์เน็ตและสิ่งประดิษฐ์ทั้งหมดอยู่ในแอพ
sumit sachdeva

85

นอกจากนี้เรายังสามารถติดตั้ง npm ด้วยregistryตัวเลือกสำหรับ URL รีจิสตรีที่กำหนดเอง

npm install --registry=https://registry.npmjs.org/ 
npm install --registry=https://custom.npm.registry.com/ 

1
ฉันหามันมานานแล้ว ขอบคุณสำหรับการแชร์!
falsarella

1
คุณเป็นผู้ช่วยให้รอด
Raj Gupta

56

คุณสามารถเปลี่ยนได้โดยใช้. bat ทำให้แน่ใจว่าคุณเรียกใช้คำสั่งโทรมาก่อนหวังว่าสิ่งนี้จะช่วยให้ทุกคนในอนาคตทำให้คำสั่ง. bat คล้ายกัน

call npm config set registry https://registry.npmjs.org/

7
@Milad ฉันไม่รู้ คุณอาจต้องการสร้างตัวนับอะตอมและใช้ระบบขับเคลื่อนเหตุการณ์เพื่อปรับปรุงตัวนับ คุณสามารถใช้ฐานข้อมูลแบบกระจายเพื่อจัดเก็บตัวนับเพื่อให้ตัวนับของคุณพร้อมใช้งานสูง
prayagupd

19

ในเวอร์ชัน 4.4.1 คุณสามารถใช้:

npm config set @myco:registry=http://reg.example.com

โดยที่ @myco เป็นขอบเขตแพ็คเกจของคุณ คุณสามารถติดตั้งแพ็คเกจด้วยวิธีนี้:

npm install @myco/my-package

ref: https://docs.npmjs.com/misc/scope


15

อาจจะสายเกินไปที่จะตอบ แต่ถ้าใครต้องการมันก็ใช้งานได้ดีเพราะฉันใช้ไปหลายครั้งแล้ว

npm config set registry=https://registry.npmjs.com/


2

โดยการดำเนินการ. bat ของคุณคุณกำลังตั้งค่าการกำหนดค่าสำหรับเซสชันนั้นเท่านั้นที่ไม่ได้อยู่ในส่วนกลาง เมื่อคุณเปิดและพรอมต์คำสั่ง cmd อื่นและเรียกใช้การnpm installตั้งค่านั้นจะไม่ถูกตั้งค่าสำหรับเซสชันนี้ดังนั้นแก้ไขไฟล์. bat ของคุณเป็น

@echo off
npm config set registry https://registry.npmjs.org/
@cmd.exe /K

1
  1. ตั้งค่ารีจิสทรี npm ทั่วโลก

    ใช้คำสั่งด้านล่างเพื่อแก้ไขไฟล์. npmrc config สำหรับผู้ใช้ที่ล็อกอิน

    npm config set registry <registry url>

    ตัวอย่าง: npm config set registry https://registry.npmjs.org/


  1. กำหนดขอบเขตรีจิสทรี npm

    ขอบเขตอนุญาตให้มีการจัดกลุ่มของแพ็คเกจที่เกี่ยวข้องเข้าด้วยกัน แพ็คเกจที่กำหนดขอบเขตจะถูกติดตั้งในโฟลเดอร์ย่อยภายใต้โฟลเดอร์ node_modules

    ตัวอย่าง : node_modules / @ my-org / packagaename

    ในการตั้งค่าขอบเขตการใช้รีจิสทรี: npm config set @my-org:registry http://example.reg-org.com

    ในการติดตั้งแพ็คเกจโดยใช้ขอบเขต: npm install @my-org/mypackage

    เมื่อใดก็ตามที่คุณติดตั้งแพคเกจใด ๆ จาก scope @ my-org npm จะค้นหาในการตั้งค่ารีจิสทรีที่เชื่อมโยงกับ scope @ my-orgเพื่อหา url ของรีจิสทรี


  1. ตั้งค่ารีจิสทรี npm ในเครื่องสำหรับโครงการ

    หากต้องการแก้ไขรีจิสทรี npm สำหรับโครงการปัจจุบันเท่านั้น สร้างไฟล์ภายในโฟลเดอร์รากของโครงการเป็น.npmrc

    เพิ่มเนื้อหาด้านล่างในไฟล์

   registry = 'https://registry.npmjs.org/'


0

คุณอาจไม่สามารถเปลี่ยนรีจิสทรี npm โดยใช้.batไฟล์ได้เนื่องจากGntemชี้ให้เห็น แต่ฉันเข้าใจว่าคุณต้องการความสามารถในการเปลี่ยนการลงทะเบียนโดยอัตโนมัติ คุณสามารถทำได้โดยกำหนดค่าของคุณ.npmrcในไฟล์แยกต่างหาก (พูดnpmrc_jfrog & npmrc_default ) และให้.batไฟล์ของคุณทำการคัดลอก

ตัวอย่างเช่น (ใน Windows): คุณdefault_registry.batจะมี

xcopy /y npmrc_default .npmrc

และคุณjfrog_registry.batจะมี

xcopy /y npmrc_jfrog .npmrc

หมายเหตุ: /yไม่แสดงพรอมต์เพื่อยืนยันว่าคุณต้องการเขียนทับไฟล์ปลายทางที่มีอยู่

ซึ่งจะทำให้แน่ใจว่าทุกคุณสมบัติการกำหนดค่า ( รีจิสทรีพร็อกซี apiKeys ฯลฯ ) .npmrcได้รับการคัดลอกไปยัง

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ xcopy ที่นี่

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