npm知識點(diǎn)

node 切換版本

一.npm切換node版本

  • 使用npm 安裝一個(gè)模塊 modules 到全局
    npm install -g modules

  • 使用 n 加版本號就可以安裝其他版本埂息,比如:
    modules 6.11.3

  • 再使用 n 弟劲,通過上下鍵,就可以選擇不同的版本啦

    (注意盲憎,是從低版本升到高版本時(shí)多版本共存戒劫;如果是已經(jīng)安裝了高版本半夷,再安裝低版本時(shí),高版本就沒有了)

二.nvm切換node版本

  • 下載某版本node
    nvm install v8.11.3
  • 切換到某版本Node
    nvm use v8.11.3

其他命令

三.npm其他命令

  • 安裝包
    npm install modules迅细,npm install
    npm install命令以后會根據(jù)package.json 去下載相關(guān)依賴包.

  • 卸載模塊
    npm uninstall

  • 更新模塊
    npm update modules

  • 檢查過時(shí)模塊
    npm outdated [modules]

    image.png

  • 查看安裝的模塊
    npm ls

  • 在項(xiàng)目中引導(dǎo)創(chuàng)建一個(gè)package.json 文件
    npm init

  • 查看某條命令的詳細(xì)幫助
    npm help

  • 查看包的安裝路徑
    npm root

  • 管理npm的配置路徑
    npm config

  • 啟動(dòng)模塊巫橄,停止模塊
    npm startnpm stop

  • 重新啟動(dòng)模塊
    npm restart

  • 測試模塊
    npm test

  • 查看模塊版本
    npm version

  • 查看模塊的注冊信息
    npm view

  • 用戶登錄
    npm adduser

    image.png

  • 發(fā)布模塊,撤銷發(fā)布
    npm publish疯攒,npm unpublish <package>@<version>

  • 在發(fā)布的包上設(shè)置訪問級別
    npm access

  • 配置cnpm
    npm install -g cnpm --registry=https://registry.npm.taobao.org

  • 可以清空NPM本地緩存嗦随,用于對付使用相同版本號發(fā)布新版本代碼的人
    npm cache clear

四.nvm其他命令

  • 安裝最新穩(wěn)定版 node
    nvm install stablenvm use node
  • 給版本起別名
    nvm alias awesome-version 4.2.2
  • 取消別名
    nvm unalias awesome-version
  • nvm切換node版本的時(shí)候敬尺,將全局npm包一鍵切換(重下載原版本Npm包)
    nvm install v5.0.0 --reinstall-packages-from=4.2
  • 想安裝最新的 4.2 系列的最新的一個(gè)版本
    nvm install 4.2
  • 列出遠(yuǎn)程服務(wù)器上所有的可用版本,Windows 的話枚尼,
    nvm ls-remotenvm ls available
  • 列出已安裝
    nvm ls
  • 直接運(yùn)行特定版本的 Node
    nvm run 4.2.2 --version
  • 在當(dāng)前終端的子進(jìn)程中運(yùn)行特定版本的 Node
    nvm exec 4.2.2 node --version
    確認(rèn)某個(gè)版本Node的路徑
    nvm which 4.2.2

npm 砂吞,nvm相關(guān)問題

  1. 安裝 nvm
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
  2. 全局安裝和本地安裝
    全局安裝是安裝一個(gè)工具署恍,他不是安裝在一個(gè)文件夾下,而是安裝在某個(gè)全局環(huán)境下蜻直,一般安裝的路徑為 /usr/local 下或者你 node 的安裝目錄盯质。,全局安裝在命令行中任何地方都可以直接調(diào)用概而。
    局部安裝是將項(xiàng)目安裝以后呼巷,在./node_modules下面(運(yùn)行 npm 命令時(shí)所在的目錄),然后在項(xiàng)目中通過require等方式引用赎瑰,這樣安裝后只能在本項(xiàng)目中使用王悍。
    通常情況下的引入模塊是通過兩種方式,一種是全局模塊餐曼,通過NODE_PATH下去尋找压储;~另一種是通過./node_modules取尋找鲜漩。
  • 當(dāng)希望在項(xiàng)目中通過require來實(shí)現(xiàn)明顯的依賴關(guān)系,必須使用本地安裝_(全局安裝的文件復(fù)制過來集惋,或者相對孕似,絕對的引入方式都可以,但過于麻煩刮刑。)喉祭;
  • 在不同的項(xiàng)目中所需要的模塊的版本是不同的,或者可能對某些模塊進(jìn)行重新命名为朋,將導(dǎo)致一個(gè)項(xiàng)目重命名影響全局臂拓。
  • 本地安裝的重要性:項(xiàng)目中需要的多個(gè)包之間相互依賴,若使用全局包习寸,那么每次包的升級胶惰,更新就會影響多個(gè)項(xiàng)目,依賴關(guān)系會被破壞霞溪,所以使用本地安裝有利于不同項(xiàng)目之間的獨(dú)立性孵滞。
    綜上:除了工具類webpack,babel,以外建議本地安裝鸯匹,保證各自項(xiàng)目之間相互獨(dú)立坊饶。
    image.png
  1. npm install X、npm install X -save殴蓬、npm install X -save-dev的區(qū)別匿级?
  • npm install X:會把X包安裝到node_modules目錄中,不會修改package.json,之后運(yùn)行npm install命令時(shí)染厅,不會自動(dòng)安裝X
  • npm install X -save:會把X包安裝至node_modules目錄中痘绎,會在package.json的dependencies屬性中添加X,之后運(yùn)行npm install命令會自動(dòng)安裝X到node_modules中(運(yùn)行時(shí)需要引用的包)
  • npm install X -save-dev:會把X包安裝到node_modules目錄中,會在package.json的devDependencies屬性下添加X之后運(yùn)行npm install命令時(shí)肖粮,會自動(dòng)安裝X到node_modules目錄中(開發(fā)過程需要使用的包)
  1. npm工作原理


    image.png
  2. 版本號詳解

語義版本號分為X.Y.Z三位孤页,分別代表主版本號、次版本號和補(bǔ)丁版本號涩馆。當(dāng)代碼變更時(shí)行施,版本號按以下原則更新。

如果只是修復(fù)bug魂那,需要更新Z位蛾号。
如果是新增了功能,但是向下兼容涯雅,需要更新Y位须教。
如果有大變動(dòng),向下不兼容,需要更新X位轻腺。

  1. 使用nvm和n的區(qū)別

n是一個(gè)需要全局安裝的npm 包。
在使用n管理node版本之前划乖,先需要一個(gè)node環(huán)境贬养,然后使用n來安裝不同版本的node.安裝時(shí),n會先將指定版本的node存儲下來琴庵,然后將其賦值到我們熟知的路徑/usr/local/bin误算,非用戶目錄需要在命令前加sudo.

nvm是一個(gè)獨(dú)立軟件包,不是npm package,所以需要單獨(dú)安裝nvm.然后使用nvm來安裝不同版本的node.
安裝時(shí)迷殿,nvm將不同的node版本存儲在~/.nvm/<version>/下儿礼,然后修改$PATH,將指定版本的路徑加入,這樣調(diào)用node命令即是使用指定版本的node.

對比:nvm比n復(fù)雜庆寺,但它是一個(gè)獨(dú)立軟件包蚊夫,nvm不依賴node環(huán)境,是node依賴nvm;而n依賴于node.
n對全局模塊無作用懦尝,有可能在切換了node版本后發(fā)生全局模塊執(zhí)行出錯(cuò)的問題知纷;nvm切換版本后,由于nvm全局模塊存在于各自版本的沙箱中陵霉,需重新安裝琅轧,不同版本不存在任何沖突。

注:- nvm不支持Windows;

  • node路徑:/usr/local/bin;nvm需手動(dòng)指定路徑踊挠。
  1. 使用 .nvmrc 文件配置項(xiàng)目所使用的 node 版本
image.png
  1. 卸載已安裝到全局的 node/npm


    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乍桂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子效床,更是在濱河造成了極大的恐慌睹酌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扁凛,死亡現(xiàn)場離奇詭異忍疾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)谨朝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門卤妒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人字币,你說我怎么就攤上這事则披。” “怎么了洗出?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵士复,是天一觀的道長。 經(jīng)常有香客問我,道長阱洪,這世上最難降的妖魔是什么便贵? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮冗荸,結(jié)果婚禮上承璃,老公的妹妹穿的比我還像新娘。我一直安慰自己蚌本,他們只是感情好盔粹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著程癌,像睡著了一般舷嗡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嵌莉,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天进萄,我揣著相機(jī)與錄音,去河邊找鬼烦秩。 笑死垮斯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的只祠。 我是一名探鬼主播兜蠕,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抛寝!你這毒婦竟也來了熊杨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤盗舰,失蹤者是張志新(化名)和其女友劉穎晶府,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钻趋,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡川陆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛮位。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片较沪。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖失仁,靈堂內(nèi)的尸體忽然破棺而出尸曼,到底是詐尸還是另有隱情,我是刑警寧澤萄焦,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布控轿,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茬射。R本人自食惡果不足惜鹦蠕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望躲株。 院中可真熱鬧片部,春花似錦、人聲如沸霜定。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽望浩。三九已至,卻和暖如春惰说,著一層夾襖步出監(jiān)牢的瞬間磨德,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工吆视, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留典挑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓啦吧,卻偏偏與公主長得像您觉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子授滓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • NPM NPM 是隨同 Node 一起安裝的包管理工具琳水,能解決 Node 代碼部署上的很多問題,常見的使用場景有以...
    heyi_let閱讀 2,575評論 0 2
  • 在我們的日常開發(fā)中經(jīng)常會遇到這種情況:手上有好幾個(gè)項(xiàng)目般堆,每個(gè)項(xiàng)目的需求不同在孝,進(jìn)而不同項(xiàng)目必須依賴不同版的 Node...
    i5yue閱讀 1,962評論 0 1
  • JavaScript 模塊化編程 網(wǎng)站越來越復(fù)雜,js代碼淮摔、js文件也越來越多私沮,會遇到什么問題? 命名沖突和橙; 文件...
    magic_pill閱讀 1,413評論 0 1
  • 今天晚上我去韓暢姐姐家了仔燕。姐姐教我下象棋,我非常喜歡玩象棋胃碾,老媽媽叫我走的時(shí)候我還不愿意放手呢涨享。他還有一個(gè)...
    周塬晰閱讀 163評論 0 0
  • 今天的拆頁來自第四章厕隧,如何講好一個(gè)故事 拆頁九 說明:沒有引文標(biāo)示的是書中作者所講的故事,有引文標(biāo)示的是作者對講故...
    若塵Cherry閱讀 240評論 0 0