node環(huán)境:nrm + mvn + npm + yarn

node的 nrm + nvm + npm + yarn + npx

一源葫、mvn node版本管理:

  • 用node的都知道, 不能項(xiàng)目所依賴的node版本會(huì)不一樣, 但是原始切換版本很麻煩,需要去手動(dòng)改環(huán)境變量
  • 所以有個(gè)node版本的切換器,會(huì)很方便, mvn就是這樣一個(gè)工具
  • 本人淺顯猜測(cè)原理和git原理一樣, 只是單純管理node版本

安裝nvm前

  • 將node卸載干凈,包括環(huán)境變量path的配置

安裝直接去官網(wǎng)下載即可 ==> mvn下載頁(yè)window.zip版本

  • 有多個(gè)版本,我選的.zip的壓縮文件
  • 解壓后和常規(guī)程序安裝類似,但需注意nodejs安裝保存路徑

安裝完成 會(huì)自動(dòng)配置環(huán)境變量

接下來,安裝nodo

* nvm install <node-vision>
* 新安裝的node版本建議`立即使用`(并且安裝時(shí),有提示),防止bug
    nvm use <newNode-vision>
* 查看版本是否切換上成功
    1. node -v 顯示當(dāng)前版本
    2. nvm ls 顯示nvm管理的版本,在當(dāng)前版本前有`*`標(biāo)記
* 新手常規(guī)`BUG`: 明明node -v 是切換成功的版本,但是nvm ls且沒有`*`標(biāo)記
    處理: 卸載重來,可能原因就是上面`安裝新版本,沒有立即使用`(若有知真正原理的callme)

node版本切換

* nvm use <changeNode-vision>

查看node版本是否nvm管理上

* nvm ls
    會(huì)顯示所有安裝的node版本,在當(dāng)前使用版本前有 `*` 標(biāo)記

二、npm 安裝與使用

更改npm 下載地址: npm config set registry https://registry.npm.taobao.org
更改全局緩存: npm config set cache "D:\Program Files\Nodejs\node_global" (系統(tǒng)環(huán)境變量需要一致,不然找不到包命令)
更改全局包保存地址: npm config set prefix "D:\Program Files\Nodejs\node_cache"

1.命令行窗口(小黑屏)鸵贬、CMD窗口祷嘶、終端屎媳、shell

- 開始菜單 --> 運(yùn)行 --> CMD --> 回車
- 常用的指令:
    tree 文檔結(jié)構(gòu)樹狀顯示
    cls  清空屏幕
    D: 直接輸入 字母加 :進(jìn)入字母對(duì)應(yīng)磁盤
    dir 列出當(dāng)前目錄下的所有文件
    cd 目錄名 進(jìn)入到指定的目錄
    md 目錄名 創(chuàng)建一個(gè)文件夾
    md d:\test\my   d盤下新建文件夾
    rd 目錄名 刪除一個(gè)文件夾(需要是空文件夾)
    del a.txt       刪除a.txt的文件
    del *.txt       刪除所有后綴為.txt的文件
    cd.>cc.txt      新建cc.txt文件
    rd /s D:\test   刪除D盤里的test文件夾  會(huì)出現(xiàn)如下 test, 是否確認(rèn)(Y/N)?  直接輸入 Y 在回車
    rd test/s       刪除此文件夾下的所有文件  test, 是否確認(rèn)(Y/N)?  直接輸入 Y 在回車

- 目錄
    . 表示當(dāng)前目錄
    .. 表示上一級(jí)目錄
    
- 環(huán)境變量(windows系統(tǒng)中變量)    
    path
        C:\work\jdk\jdk1.7.0_75/bin;
        %CATALINA_HOME%/bin;
        C:\work\soft\tools\AppServ\Apache24\bin;
        C:\work\soft\tools\AppServ\php5;
        C:\Users\lilichao\AppData\Local\Programs\Fiddler;
        C:\work\environment\Egret\Egret Wing 3\bin;
        C:\Users\lilichao\AppData\Roaming\npm;
        C:\Program Files\MongoDB\Server\3.2\bin;
        C:\Users\lilichao\Desktop\hello
        
    - 當(dāng)我們?cè)诿钚写翱诖蜷_一個(gè)文件夺溢,或調(diào)用一個(gè)程序時(shí),
        系統(tǒng)會(huì)首先在當(dāng)前目錄下尋找文件程序烛谊,如果找到了則直接打開
        如果沒有找到則會(huì)依次到環(huán)境變量path的路徑中尋找风响,直到找到為止
        如果沒找到則報(bào)錯(cuò)
    - 所以我們可以將一些經(jīng)常需要訪問的程序和文件的路徑添加到path中,
        這樣我們就可以在任意位置來訪問這些文件和程序了

I/O (Input/Output)
- I/O操作指的是對(duì)磁盤的讀寫操作

Node
- Node是對(duì)ES標(biāo)準(zhǔn)一個(gè)實(shí)現(xiàn)丹禀,Node也是一個(gè)JS引擎
- 通過Node可以使js代碼在服務(wù)器端執(zhí)行
- Node僅僅對(duì)ES標(biāo)準(zhǔn)進(jìn)行了實(shí)現(xiàn)状勤,所以在Node中不包含DOM 和 BOM
- Node中可以使用所有的內(nèi)建對(duì)象
String Number Boolean Math Date RegExp Function Object Array
而BOM和DOM都不能使用
但是可以使用 console 也可以使用定時(shí)器(setTimeout() setInterval())

- Node可以在后臺(tái)來編寫服務(wù)器
    Node編寫服務(wù)器都是單線程的服務(wù)器
    - 進(jìn)程
        - 進(jìn)程就是一個(gè)一個(gè)的工作計(jì)劃(工廠中的車間)
    - 線程
        - 線程是計(jì)算機(jī)最小的運(yùn)算單位(工廠中的工人)
            線程是干活的
            
- 傳統(tǒng)的服務(wù)器都是多線程的
    - 每進(jìn)來一個(gè)請(qǐng)求,就創(chuàng)建一個(gè)線程去處理請(qǐng)求
    
- Node的服務(wù)器單線程的
    - Node處理請(qǐng)求時(shí)是單線程湃崩,但是在后臺(tái)擁有一個(gè)I/O線程池

?

node.js
- node是一款對(duì)ES標(biāo)準(zhǔn)實(shí)現(xiàn)的JS引擎
- 通過node可以使js在服務(wù)器中運(yùn)行
- node就是一款使用js編寫的web服務(wù)器
- node底層是使用c++的編寫的
- node的中js引擎使用的chrome的v8引擎
- node的特點(diǎn):
    1.非阻塞荧降、異步的I/O
    2.事件和回調(diào)函數(shù)
    3.單線程(主線程單線程,后臺(tái)I/O線程池)
    4.跨平臺(tái)
    
- 模塊化
    - ES5中沒有原生支持模塊化攒读,我們只能通過script標(biāo)簽引入js文件來實(shí)現(xiàn)模塊化
    - 在node中為了對(duì)模塊管理,引入了CommonJS規(guī)范
        
        - 模塊的引用
            - 使用 require()函數(shù)來引入一個(gè)模塊
            - 例子:
                var 變量 = require("模塊的標(biāo)識(shí)");
            
        - 模塊的定義
            - 在node中一個(gè)js文件就是一個(gè)模塊
            - 默認(rèn)情況下在js文件中編寫的內(nèi)容辛友,都是運(yùn)行在一個(gè)獨(dú)立的函數(shù)中薄扁,
                外部的模塊無法訪問
            - 導(dǎo)出變量和函數(shù)
                - 使用 exports 
                    - 例子:
                        exports.屬性 = 屬性值;
                        exports.方法 = 函數(shù);
                        
                - 使用module.exports
                    - 例子:
                        module.exports.屬性 = 屬性值;
                        module.exports.方法 = 函數(shù);
                        module.exports = {};
        
        - 模塊的標(biāo)識(shí)
            - 模塊的標(biāo)識(shí)就是模塊的名字或路徑
                我們node通過模塊的標(biāo)識(shí)來尋找模塊的
                對(duì)于核心模塊(npm中下載的模塊),直接使用模塊的名字對(duì)其進(jìn)行引入
                    var fs = require("fs");
                    var express = require("express");
                    
                對(duì)于自定義的文件模塊废累,需要通過文件的路徑來對(duì)模塊進(jìn)行引入
                    路徑可以是絕對(duì)路徑邓梅,如果是相對(duì)路徑必須以./或 ../開頭
                    var router = require("./router");

?

    - npm的命令
        - npm -v 查看npm的版本
        - npm version 查看所有模塊的版本
        - npm search 包名 搜索包
        - npm install / i 包名 安裝包
        - npm remove / r 包名 刪除包
        - npm install 包名 --save 安裝包并添加到依賴中 *****
        - npm install 下載當(dāng)前項(xiàng)目所依賴的包
        - npm install 包名 -g 全局安裝包(全局安裝的包一般都是一些工具)
        - npx xxx   運(yùn)行本地包,沒有將直接安裝,運(yùn)行(但是不會(huì)修改package.json),安裝后磁盤找不到,有可能存內(nèi)存,關(guān)機(jī)后會(huì)清除;

        - npm list -g --depth 0 查看全局安裝過的包命令
            npm list   顯示當(dāng)前安裝過的包
            -g        指全局安裝過的包
            --depth 0  限制輸出模塊層級(jí)
        - npm list hexo-deployer-git   后直接跟插件名,查看是否有某插件 

?

        -------------查找 
        - npm root -g 查看全局包所在的文件夾路徑
        - npm uninstall --global xxx  全局卸載   

?
?

node
- 包(package)
    - 將多個(gè)模塊組合為一個(gè)完整的功能,就是一個(gè)包
    - 包結(jié)構(gòu)
        bin
            - 二進(jìn)制的可執(zhí)行文件邑滨,一般都是一些工具包中才有
        lib
            - js文件
        doc
            - 文檔
        test
            - 測(cè)試代碼
        package.json
            - 包的描述文件
            
    - package.json  
        - 它是一個(gè)json格式的文件日缨,在它里面保存了包各種相關(guān)的信息
            name 包名
            version 版本
            dependencies 依賴
            main 包的主要的文件
            bin 可執(zhí)行文件

/npx 和 npm腳本?/

- npm(Node Package Manager node的包管理器)
    - 通過npm可以對(duì)node中的包進(jìn)行上傳、下載掖看、搜索等操作
    - npm會(huì)在安裝完node以后匣距,自動(dòng)安裝
    - npm的常用指令
        npm -v 查看npm的版本
        npm version 查看所有模塊的版本
        npm init 初始化項(xiàng)目(創(chuàng)建package.json)
        npm i/install 包名 安裝指定的包
        npm i/install 包名 --save 安裝指定的包并添加依賴 == npm i module_name  -S 
        npm i/install 包名 --save-dev 本地工具依賴 == npm i module_name  -D
        npm i/install 包名 -g 全局安裝(一般都是一些工具)
        npm i/install 安裝當(dāng)前項(xiàng)目所依賴的包
        npm s/search 包名 搜索包 
        npm r/remove 包名 刪除一個(gè)包
        npm uninstall -g <package> 
        npm update <name>更新

        npm ls 列出當(dāng)前安裝的了所有包

        npm root 查看當(dāng)前包(本地包)的安裝路徑

        npm root -g  查看全局的包的安裝路徑

        npm help  幫助,如果要單獨(dú)查看install命令的幫助哎壳,可以使用的npm help install
        npx  臨時(shí)安裝可執(zhí)行依賴包毅待,不用全局安裝,不用擔(dān)心長(zhǎng)期的污染(當(dāng)pakage.json中有npm腳本配置時(shí),可以只本地安裝工具依賴)

npm update常用命令使用

一归榕、更新

1. npm-check檢查更新
      npm install -g npm-check
      npm-check
  2.  npm-upgrade更新
      npm install -g npm-upgrade
      npm-upgrade

3.  更新全局包:
      npm update <name> -g

4.  更新生產(chǎn)環(huán)境依賴包:
      npm update <name> --save

5.  更新開發(fā)環(huán)境依賴包:
      npm update <name> --save-dev

三尸红、yarn 安裝與使用

  1. 安裝yarn
npm i yarn -g --verbose
  1. 更換安裝源地址
yarn config get registry  // 查詢當(dāng)前
yarn config set registry https://registry.npm.taobao.org  // 設(shè)置新
yarn config get cache  // 查詢當(dāng)前  
yarn config set cache "D:\Program Files\Nodejs\node_cache"  // 設(shè)置新,默認(rèn)和npm相同,就不用改(保持一致最好)

常用指令

  • yarn / yarn install 等同于npm install 批量安裝依賴
  • yarn add xxx 等同于 npm install xxx —save 安裝指定包到指定位置
  • yarn remove xxx 等同于 npm uninstall xxx —save 卸載指定包
  • yarn add xxx —dev 等同于 npm install xxx —save-dev
  • yarn upgrade 等同于 npm update 升級(jí)全部包
  • yarn global add xxx 等同于 npm install xxx -g 全局安裝指定包

node版本升級(jí)

  1. npm install -g n // npm install -g n --force
  2. nvm stable 升級(jí)到穩(wěn)定版

rimraf粉碎文件(立即刪除文件夾)

  • 全局安裝工具 rimraf 依賴 (npm install rimraf -g)得到全局粉碎文件夾的命令
  • rimraf 文件夾名(node_modules)

四、nrm 鏡像管理:

  • nrm(npm registry manager )是npm的鏡像源管理工具

安裝:

$ npm install -g nrm

使用:

$ nrm use taobao

查看可用的源:

$ nrm ls

增加源:

$ nrm add registryName <url>

測(cè)試源碼下載速度:

$ nrm test taobao
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刹泄,一起剝皮案震驚了整個(gè)濱河市外里,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌特石,老刑警劉巖盅蝗,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異县匠,居然都是意外死亡风科,警方通過查閱死者的電腦和手機(jī)撒轮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贼穆,“玉大人题山,你說我怎么就攤上這事」嗜” “怎么了顶瞳?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)愕秫。 經(jīng)常有香客問我慨菱,道長(zhǎng),這世上最難降的妖魔是什么戴甩? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任符喝,我火速辦了婚禮,結(jié)果婚禮上甜孤,老公的妹妹穿的比我還像新娘协饲。我一直安慰自己,他們只是感情好缴川,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布茉稠。 她就那樣靜靜地躺著,像睡著了一般把夸。 火紅的嫁衣襯著肌膚如雪而线。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天恋日,我揣著相機(jī)與錄音膀篮,去河邊找鬼。 笑死谚鄙,一個(gè)胖子當(dāng)著我的面吹牛各拷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闷营,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼烤黍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了傻盟?” 一聲冷哼從身側(cè)響起速蕊,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎娘赴,沒想到半個(gè)月后规哲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诽表,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年唉锌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了隅肥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袄简,死狀恐怖腥放,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绿语,我是刑警寧澤秃症,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站吕粹,受9級(jí)特大地震影響种柑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜匹耕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一聚请、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泌神,春花似錦良漱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)矾兜。三九已至损趋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椅寺,已是汗流浹背浑槽。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留返帕,地道東北人桐玻。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像荆萤,于是被迫代替她去往敵國(guó)和親镊靴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345