ฉันระมัดระวังมากกว่าปกติเพราะฉันเคยสับสนกับพฤติกรรมของnpm
ในอดีต
ฉันใช้งานบน Mac และได้ติดตั้ง node.js ผ่านbrew install node
แล้ว
ตอนนี้ฉันต้องการที่จะทำงานjslint.js
บนบรรทัดคำสั่งเป็นคำสั่งที่jslint
ฉันพบว่าวิธีบัญญัติของฉันที่จะบรรลุสิ่งนี้sudo npm install -g jslint
ซึ่งประสบความสำเร็จในการทำงานกับผลลัพธ์นี้:
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
└── nopt@1.0.10 (abbrev@1.0.4)
ต่อมา
$ jslint ply.js
zsh: command not found: jslint
เนื่องจากไม่ได้อยู่ในของฉัน/usr/local/share/npm/bin
$PATH
1) ทำไมbrew
ไม่ติดตั้งโกลบอลnpm
bin
พา ธ ไปยังพา ธ อาจเป็นไปได้ แต่มีบางอย่างที่zsh
ทำให้มันยุ่งเหยิง ฉันจะหาได้ที่ไหน
2) ฉันควรทำสิ่งนี้หรือไม่? (ต่อท้าย:/usr/local/share/npm/bin
การส่งออก$PATH
ที่ด้านล่างของฉัน~/.zshrc
)
ดูเหมือนว่านี่ไม่ใช่วิธีที่ถูกต้องที่จะทำเพราะถ้าฉันติดตั้งอย่างอื่นในภายหลัง (ใช้ Homebrew หรืออะไรบางอย่าง) ฉันจะต้องผนวกมันลงในสคริปต์เริ่มต้น zsh ของฉันเพื่อตั้งค่าเส้นทาง ฉันเดาในกรณีพิเศษนี้เป็นเพียงเรื่องของการnpm install -g
ไม่ทำ symlink ที่ถูกต้องในตำแหน่ง "เหมาะสม" (เช่น/usr/local/bin
อาจจะ)
ฉันคิดว่าสิ่งที่ฉันจะทำคือสร้าง symlink ในตัวเอง/usr/local/bin
สำหรับโปรแกรมใด ๆ ที่ฉันมีปัญหาและควรดีพอสำหรับวัตถุประสงค์ของฉัน
แก้ไข : ฉันกำลังอัปเดตในปี 2562 เพราะคำถามเก่านี้เป็นที่นิยม แต่ตอนนี้ล้าสมัยทั้งในแง่ของเวิร์กโฟลว์ส่วนตัวของฉันและในแง่ของวิธีการติดตั้งโหนดและจัดการการพึ่งพาต่างๆที่ดีที่สุด
เวิร์กโฟลว์ส่วนตัวของฉันคือการใช้ตัวติดตั้งที่ได้รับจาก nodejs.org เพื่อติดตั้งโหนดบนระบบ ฉันเชื่อใจตัวเองมากกว่าแพ็คเกจ homebrew เพราะรู้วิธีจัดการไฟล์ได้ดีที่สุด หากคุณต้องการเปลี่ยนโหนดระบบของคุณจาก 8.10 เป็น 10.15 ไม่ว่าจะเป็นบน Mac หรือ Windows เพียงดาวน์โหลดตัวติดตั้งจาก nodejs.org สำหรับ 10.15 สำหรับระบบปฏิบัติการของคุณ ความพยายามในการอัปเกรดโหนดที่ติดตั้งผ่าน homebrew ได้พิสูจน์แล้วว่าเป็นวิธีที่ยากขึ้นในประสบการณ์ของฉัน
นอกจากนี้สิ่งที่ยิ่งใหญ่ที่สุดที่จะชี้ให้เห็นคือการใช้ sudo ดังที่แสดงในการติดตั้งตัวอย่าง jslint ของฉันในเวลา 17.00 น. เป็นสิ่งที่ไม่น่าไว้วางใจอย่างมาก ฉันค่อนข้างแน่ใจว่าแพ็คเกจ homebrew ไม่ควรติดตั้งหรือมีปฏิสัมพันธ์กับผู้ใช้ superuser ไม่ควรจำเป็นและจะนำไปสู่การปวดหัวการอนุญาต!
นอกจากนี้ฉันแนะนำ ESLint มากกว่า jslint และไม่ได้ใช้ jslint เป็นเวลาหลายปี