วิธีที่แนะนำในการติดตั้ง brew, node.js, io.js, nvm, npm บน OS X คืออะไร


175

ฉันพยายามใช้ homebrew ให้มากที่สุด วิธีที่แนะนำในการติดตั้งต่อไปนี้ใน OS X คืออะไร?

และหวังว่าจะสนับสนุนการพัฒนาสำหรับ:


9
ควรสังเกตว่าแม้ว่าคุณจะขอให้ใช้โฮมบรูว์ ไม่แนะนำให้ใช้ homebrew เพื่อติดตั้ง nvm จากgithub.com/creationix/nvm "การติดตั้ง Homebrew ไม่รองรับหากคุณมีปัญหากับ nvm ที่ติดตั้ง homebrew โปรดชงถอนการติดตั้งและติดตั้งโดยใช้คำแนะนำด้านล่างก่อนยื่นเรื่อง ."
Eric

คำตอบ:


267
  1. ใช้การhomebrewติดตั้งnvm:

    brew update
    brew install nvm
    source $(brew --prefix nvm)/nvm.sh

    เพิ่มคำสั่งสุดท้ายที่จะ.profile, .bashrcหรือ.zshrcไฟล์ไปยังไม่ได้เรียกใช้อีกครั้งในทุกสถานีเริ่มต้น ตัวอย่างเช่นเมื่อต้องการเพิ่มลงในการ.profileเรียกใช้:

    echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile

    หากคุณมีปัญหาในการติดตั้งnvmโดยใช้brewคุณสามารถติดตั้งด้วยตนเอง (ดูที่นี่ )

  2. ใช้การnvmติดตั้งnodeหรือiojs(คุณสามารถติดตั้งเวอร์ชันที่คุณต้องการ):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmกำลังจัดส่งด้วยnode(หรือiojs) ดังนั้นจะสามารถใช้ได้หลังจากติดตั้งnode(หรือiojs) คุณอาจต้องการอัพเกรดเป็นเวอร์ชั่นล่าสุด:

    $ npm install -g npm@latest

    UPDnpm update -g npmรุ่นก่อนหน้านี้คือ ขอบคุณ @Metallica ที่ชี้ไปยังวิธีที่ถูกต้อง (ดูที่การร้องแสดงความคิดเห็น)

  4. ใช้การnpmติดตั้งionic:

    npm install -g ionic
  5. สิ่งที่เกี่ยวกับngCordova: คุณสามารถติดตั้งใช้หรือnpm bowerฉันไม่รู้ว่าชุดตัวเลือกใดที่เหมาะกับคุณมากกว่านั้นขึ้นอยู่กับตัวจัดการแพคเกจที่คุณต้องการใช้สำหรับฝั่งไคลเอ็นต์ ดังนั้นฉันจะอธิบายพวกเขาทั้งสอง:

    1. การใช้npm : ไปที่โฟลเดอร์โครงการของคุณและติดตั้งng-cordovaใน:

      npm install --save ng-cordova
    2. ใช้bower : ติดตั้ง bower:

       npm install -g bower

      จากนั้นไปที่โฟลเดอร์โครงการและติดตั้งngCordovaใน:

       bower install --save ngCordova

PS

  1. บางคำสั่งอาจต้องใช้สิทธิ์ superuser
  2. ตัวแปรสั้น ๆ ของnpm install some_moduleคือnpm i some_module

10
หากคุณอัพเดต npm เองห้ามใช้คำสั่ง npm update วิธีอัปสตรีมที่แนะนำเพื่ออัปเดต npm คือ: npm install -g npm@latest(จากbrew info nodeและที่นี่ )
Javad Sadeqzadeh

10
จากการติดตั้ง Brew nvm ปัจจุบัน: "โปรดทราบว่า upstream ขอให้เราทำการจัดการ nvm อย่างชัดเจนผ่านทาง Homebrew ไม่ได้รับการสนับสนุนจากพวกเขา ... " -> ดังนั้นอาจเป็นคำตอบที่ถูกต้องที่จะไม่ใช้ Brew สำหรับ nvm / node.js / io .js
s.Daniel

7
ฉันได้รับข้อความแสดงข้อผิดพลาด "nvm เข้ากันไม่ได้กับตัวเลือก" คำนำหน้า "การกำหนดค่า npm" ตามเว็บไซต์นี้ ( github.com/creationix/nvm/issues/855#issue-109279804 ) NVM ไม่สามารถใช้งานได้กับ Homebrew ฉัน "ชงถอนการติดตั้ง nvm" และติดตั้ง nvm ผ่านคำสั่ง CURL และตอนนี้ข้อความแสดงข้อผิดพลาดหายไป
YeeHaw1234

4
ฉันใช้ nvm ผ่านทาง Brew สักพักหนึ่ง แต่ได้รับข้อความ "upstream ... ชัดแจ้ง ... ไม่สนับสนุน" ด้วย เอกสาร NVM พูดอย่างชัดเจนว่า "ไม่รองรับการติดตั้ง Homebrew หากคุณมีปัญหากับ nvm ที่ติดตั้ง homebrew โปรดชงถอนการติดตั้งและติดตั้งโดยใช้คำแนะนำด้านล่างก่อนยื่นเรื่อง" ดังนั้นนี่อาจเป็นคำตอบที่ไม่ควรยอมรับอีกต่อไป ฉันเพิ่งเริ่มใช้ n ซึ่งใช้งานได้
whatsthatitspat

3
เวอร์ชั่น NVM ปัจจุบัน (v0.33.2) ไม่รองรับการติดตั้งโฮมบรูว์: ดู: github.com/creationix/nvm/tree/v0.33.2#installation
Andrea Carraro

45

อัพเดต 2019: ใช้ NVM เพื่อติดตั้งโหนดไม่ใช่ Homebrew

ในคำตอบส่วนใหญ่วิธีที่แนะนำให้ติดตั้ง nvm คือใช้Homebrew

อย่าทำอย่างนั้น

ที่หน้า Githubสำหรับ nvm มีการเรียกออกอย่างชัดเจน:

ไม่รองรับการติดตั้ง Homebrew หากคุณมีปัญหากับ nvm ที่ติดตั้งใน homebrew โปรดชงถอนการติดตั้งและติดตั้งโดยใช้คำแนะนำด้านล่างก่อนยื่นปัญหา

ใช้วิธีการต่อไปนี้แทน

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

สคริปต์โคลนที่เก็บ nvm เป็น ~ / .nvm และเพิ่มบรรทัดซอร์สในโปรไฟล์ของคุณ (~ / .bash_profile, ~ / .zshrc, ~ / .profile หรือ ~ / .bashrc)

จากนั้นใช้ nvm เพื่อติดตั้งโหนด ตัวอย่างเช่นการติดตั้ง LTS เวอร์ชันล่าสุดทำได้:

nvm install v8.11.1

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


2
ฉันคิดว่าคุณสามารถnvm install --ltsรับ LTS ล่าสุดได้ด้วย
skube

1
ขอบคุณที่นำเรื่องนี้ขึ้นมาฉันลงหลุมกระต่ายที่น่าสยดสยองด้วย nvm และ homebrew และเพิ่งเกิดขึ้น ...
cssidy

คำตอบที่ดี! หลังจากการอ่านจำนวนมาก (การติดตั้งโหนดสามารถเป็นทุ่นระเบิด) ฉันเพิ่งชงโหนดที่ถอนการติดตั้งทำความสะอาดทุกอย่างออกและใช้ nvm เพื่อติดตั้งโหนดบน Mojave 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt

13

ฉันใช้ n (การจัดการเวอร์ชันโหนด)

คุณสามารถติดตั้งได้สองวิธี

brew install n

หรือ

npm install -g n

คุณสามารถสลับระหว่างโหนดเวอร์ชันต่าง ๆ กับ io นี่คือตัวอย่างจาก env ปัจจุบันของฉันเมื่อฉันโทรหา n โดยไม่มี params:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 

2
คุณสามารถเพิ่มวิธีที่สามในการติดตั้งซึ่งไม่เจ็บปวดและปล่อยให้โปรแกรมถอนการติดตั้งสะดวกถ้าคุณต้องการ - github.com/mklement0/n-install วิธีนี้แนะนำในเอกสาร n ที่github.com/tj/n
whatsthatitspat

1
ควรกล่าวถึงด้วยว่าหากคุณวางแผนที่จะรันเวอร์ชันโหนดที่แตกต่างกันสำหรับโครงการที่แตกต่างกันในเวลาเดียวกัน (เช่นในหน้าต่างเทอร์มินัล 2 หน้าต่างที่แตกต่างกัน) nvm เป็นตัวเลือกที่ดีกว่าเพราะมันจะเปลี่ยนเส้นทางไปยังโหนด
Nilloc

10

ฉันสุดสาย แต่ฉันไม่ชอบคำตอบอื่น ๆ

การติดตั้ง Homebrew

สำหรับชงวิ่ง

"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

กำลังติดตั้งโหนด & npm

คุณไม่ควรใช้brewในการติดตั้งโหนดและNPM

ฉันเห็นบางสถานที่แนะนำว่าคุณควรใช้ Homebrew เพื่อติดตั้ง Node (เช่น alexpods คำตอบและในTeam Treehouse blog Post ) แต่ติดตั้งด้วยวิธีนี้คุณมีแนวโน้มที่จะพบปัญหามากขึ้นnpmและbrewเป็นทั้งผู้จัดการแพ็คเกจและคุณควร มีตัวจัดการแพคเกจจัดการตัวจัดการแพคเกจอื่นซึ่งนำไปสู่ปัญหาเช่นปัญหานี้อย่างเป็นทางการปัญหาNPM ข้อผิดพลาด: ปฏิเสธที่จะลบ: / usr / local / bin / npmหรือไม่สามารถถอนการติดตั้งโมดูล npm บน OSX

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับหัวข้อในโพสต์ของ DanHerbert Fixing npm บน Mac OS X สำหรับผู้ใช้ Homebrewซึ่งเขาจะกล่าวต่อไป

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

สำหรับทุกอย่างอื่น

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


ดังนั้นคุณแนะนำเพียงแค่ติดตั้งมันจากการดาวน์โหลด?
Shawn Mclean

6

หากคุณติดตั้งโหนดก่อนหน้านี้โดยใช้การชงคุณจะมีไฟล์พิเศษมากมายที่คุณควรทำความสะอาดก่อนที่จะติดตั้งโหนด "วิธีที่ถูกต้อง" นอกจากนี้ฉันต้องเพิ่มการตั้งค่าบางอย่างในสคริปต์เริ่มต้นของฉันเพื่อให้สิ่งต่าง ๆ ทำงานได้อย่างราบรื่น

ฉันเขียนสคริปต์เพื่อทำให้ง่าย

# filename:  install-nvm-npm-node
# author:    Lex Sheehan
# purpose:   To cleanly install NVM, NODE and NPM
# dependencies:  brew

NOW=$(date +%x\ %H:%M:%S)
CR=$'\n'
REV=$(tput rev)
OFF=$(tput sgr0)
BACKUP_DIR=$HOME/backups/nvm-npm-bower-caches/$NOW
MY_NAME=$(basename $0)
NODE_VER_TO_INSTALL=$1
if [ "$NODE_VER_TO_INSTALL" == "" ]; then
    NODE_VER_TO_INSTALL=v0.12.2
fi
if [ "`echo "$NODE_VER_TO_INSTALL" | cut -c1-1`" != "v" ]; then
    echo """$CR""Usage:   $ $MY_NAME <NODE_VERSION_TO_INSALL>"
    echo "Example: $ $MY_NAME v0.12.1"
    echo "Example: $ $MY_NAME $CR"
    exit 1
fi
echo """$CR""First, run:  $ brew update"
echo "Likely, you'll need to do what it suggests."
echo "Likely, you'll need to run: $ brew update$CR"
echo "To install latest node version, run the following command to get the latest version:  $ nvm ls-remote"
echo "... and pass the version number you want as the only param to $MY_NAME. $CR"
echo "Are you ready to install the latest version of nvm and npm and node version $NODE_VER_TO_INSTALL ?$CR"
echo "Press CTL+C to exit --or-- Enter to continue..."
read x

echo """$REV""Uninstalling nvm...$CR$OFF"
# Making backups, but in all likelyhood you'll just reinstall them (and won't need these backups)
if [ ! -d "$BACKUP_DIR" ]; then 
    echo "Creating directory to store $HOME/.nvm .npm and .bower cache backups: $BACKUP_DIR"
    mkdir -p $BACKUP_DIR
fi 
set -x
mv $HOME/.nvm   $BACKUP_DIR  2>/dev/null
mv $HOME/.npm   $BACKUP_DIR  2>/dev/null
mv $HOME/.bower $BACKUP_DIR  2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Uninstalling node...$CR$OFF"
echo "Enter your password to remove user some node-related /usr/local directories"
set -x
sudo rm -rf /usr/local/lib/node_modules
rm -rf /usr/local/lib/node
rm -rf /usr/local/include/node
rm -rf /usr/local/include/node_modules
rm /usr/local/bin/npm
rm /usr/local/lib/dtrace/node.d
rm -rf $HOME/.node
rm -rf $HOME/.node-gyp
rm /opt/local/bin/node
rm /opt/local/include/node
rm -rf /opt/local/lib/node_modules
rm -rf /usr/local/Cellar/nvm
brew uninstall node 2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Installing nvm...$CR$OFF"

echo "++brew install nvm"
brew install nvm 
echo '$(brew --prefix nvm)/nvm.sh'
source $(brew --prefix nvm)/nvm.sh

echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc):$CR$OFF"
echo "export NVM_DIR=\"\$(brew --prefix nvm)\"; [ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"$CR"
NVM_DIR="$(brew --prefix nvm)"

echo """$CR""Using nvm install node...$CR"
echo "++ nvm install $NODE_VER_TO_INSTALL"
nvm install $NODE_VER_TO_INSTALL
NODE_BINARY_PATH="`find /usr/local/Cellar/nvm -name node -type d|head -n 1`/$NODE_VER_TO_INSTALL/bin"
echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc) and then restart your shell:$CR$OFF"
echo "export PATH=\$PATH:$NODE_BINARY_PATH:$HOME/.node/bin"

echo """$CR""Upgrading npm...$CR"
echo '++ install -g npm@latest'
npm install -g npm@latest
{ set +x; } &>/dev/null
echo "$REV""$CR""Insert following line in your $HOME/.npmrc file:$OFF"
echo """$CR""prefix=$HOME/.node$CR"
echo "Now, all is likley well if you can run the following without errors:  npm install -g grunt-cli$CR"
echo "Other recommended global installs: bower, gulp, yo, node-inspector$CR"

ฉันเขียนบทความสั้น ๆที่นี่ซึ่งมีรายละเอียดว่าทำไมจึงเป็น "วิธีที่ถูกต้อง"

หากคุณต้องการติดตั้ง ioj ให้ใช้ nvm ดังนี้:

nvm install iojs-v1.7.1

หากต้องการติดตั้ง Brew เพียงแค่ดูที่หน้าแรก

ดูคำตอบ alexpods สำหรับส่วนที่เหลือ


5
ยอดเยี่ยมมากที่เห็นว่าตัวจัดการแพคเกจและตัวจัดการเวอร์ชันเหล่านี้ช่วยในการลบสคริปต์ที่กำหนดเองแฮ็กและวิธีแก้ปัญหาเพื่อให้ techstack xyz ทำงานได้จริง น่ากลัว
Michael Trouw

ทำงานให้กับฉันแม้ว่าฉันจะเริ่มต้นด้วย NPM และชงเสียทั้งสอง
Chris F Carroll

5

คุณควรติดตั้ง node.js ด้วย nvm เนื่องจากวิธีนี้คุณไม่จำเป็นต้องให้สิทธิพิเศษ superuser เมื่อทำการติดตั้งแพ็กเกจส่วนกลาง

บริวเวอรี่นั้นยอดเยี่ยมสำหรับสิ่งอื่น ๆ ฉันมักจะเอนเอียงไปที่ Bower ทุกครั้งที่ฉันมีตัวเลือกในการติดตั้งบางสิ่งด้วย Bower


การติดตั้งโหนดโดยใช้ nvm เป็นวิธีที่ฉันต้องการ ด้วยเหตุผลที่ชัดเจนว่าสามารถมีโหนดหลายเวอร์ชันบนเครื่องของฉันและฉันไม่ต้องเรียกใช้ npm ด้วย sudo ฉันเขียนบล็อกโพสต์garywoodfine.com/install-nodejs-nvm-osxอธิบายวิธีการติดตั้ง
Gary Woodfine

4

ผมเห็นด้วยกับ Noa - ถ้าคุณจะต้องมีหลายรุ่นnode, io.jsแล้วชงไม่ได้เป็นทางออกที่เหมาะสม

คุณสามารถช่วยio.jsสนับสนุนการทดสอบเบต้าใน nvm: https://github.com/creationix/nvm/pull/616

หากคุณต้องการio.jsและไม่ได้เปลี่ยนเวอร์ชั่นคุณสามารถติดตั้งการกระจายแบบไบนารีของio.jsจากhttps://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; ซึ่งรวมถึงnpmและคุณไม่จำเป็นต้องใช้nvmหากคุณไม่ได้เปลี่ยนเวอร์ชั่น

อย่าลืมอัพเดทnpmหลังจากติดตั้ง:sudo npm install -g npm@latest


3

นี่คือสิ่งที่ฉันทำ:

curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
cd / && . ~/.nvm/nvm.sh && nvm install 0.10.35
. ~/.nvm/nvm.sh && nvm alias default 0.10.35

ไม่มี Homebrew สำหรับอันนี้

nvmเร็ว ๆ นี้จะรองรับ io.js แต่ไม่ใช่ในเวลาโพสต์: https://github.com/creationix/nvm/issues/590

แล้วติดตั้งทุกอย่างอื่นต่อโครงการด้วยและpackage.jsonnpm install


0

สำหรับการติดตั้งด้วย zsh และ Homebrew:

brew install nvm

จากนั้นเพิ่มสิ่งต่อไปนี้ใน ~ / .zshrc หรือไฟล์คอนฟิกูเรชันเชลล์ที่คุณต้องการ:

export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

จากนั้นติดตั้งเวอร์ชันโหนดและใช้งาน

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