天天看點

node.js的安裝和npm指令詳解

簡介

  1. node.js是一個基于chrome V8 引擎的 JavaScript 運作環境。
  2. node.js使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。
  3. node.js的包管理器 npm , 是全球最大的開源庫生态系統

安裝

  • 官網位址 : http://nodejs.cn
  • 檢視是否安裝成功 :
    1. node -v : 檢視node.js版本
    2. npm -v : 檢視npm版本
    3. node -h : 幫助資訊
  • 安裝淘寶鏡像 : 位址 : http://npm.taobao.org/

    在終端下輸入 : npm install -g cnpm --registry=https://registry.npm.taobao.org

一些指令行的基本操作

  1. cd 進入目錄
  2. cd… 傳回上一級
  3. tab 自動補全内容
  4. ctrl + c 退出操作
  5. cls 清屏
  6. dir 顯示檔案
  7. mkdir 建立檔案夾
  8. rmdir 删除檔案夾
  9. type nul > file.text 建立空檔案
  10. echo[ content ]>file.text 建立帶内容的檔案
  11. del flie.text 删除檔案

一些安裝操作

  • npm安裝子產品
    1. 局部安裝 : npm install xxx
    2. 全局安裝 : npm install xxx -g
    3. 檢視全局安裝的位置 : npm root -g
  • nvm
    1. node version manage : 對node版本的管理
    2. nvm ls :檢視版本資訊
    3. nvm install v(版本号) : 安裝對應版本的nvm
    4. nvm use(版本号) : 使用該版本nvm
  • nrm
    1. node register manage : 對 npm 下載下傳源的管理
    2. npm i -g nrm : 安裝
    3. nrm ls : 檢視
    4. nrm use : 切換
  • node的一些基本操作
    1. node + 檔案路徑 : 開啟node環境(REPL模式),可直接操作(後置名為.js時,字尾名可以省略)
    2. cnpm install -g nodemon : 安裝nodemon , 可以實時偵測檔案的變化(相當于VScode的live Server)

浏覽器和node.js

  • 浏覽器 : 主要進行DOM操作 , document , window
  • node.js : 主要進行計算機底層的操作,資料庫,檔案,系統,程序等。

node.js的子產品

  • 内置的node.js子產品 : 就是下載下傳npm之後直接可以使用的子產品,不用下載下傳,通過 require()引入即可。
    1. url子產品 : url.parse() 會解析一個URL 字元串并傳回一個URL對象。第二個參數布爾值true,對query屬性解析成對象 。 url.format() : 傳回一個urlObject格式化後的URL字元串。方法是parse()方法的相反操作。
    2. querystring子產品 : 提供用于解析和格式化URL查詢字元串的實用工具。parse():對query的串聯字元串進行對象的解析。stringify():parse()的相反操作
//url : 處理 url 位址 ,  web項目 請求 -> 請求url -> 後端就要處理
var url = require('url');
var querystring = require('querystring');
var str = 'http://www.baidu.com/goods/detail.php?id=1&type=phone#abc';
var result = url.parse(str,true);  //對url進行解析的,傳回一個對象,第二個參數:可以把 字元串格式化參數 -> 對象形式的資料

           
  1. path : 處理檔案路徑
    • path.join() : 連接配接路徑
    • path.parse() : 方法可以傳回路徑各部分的資訊。
    • path.relative() : 接受兩個路徑作為參數 。 基于目前工作目錄,傳回從第一個路徑到第二個路徑的相對路徑。
    • pth.resolve() : 把一個相對位址轉成一個絕對位址
var path = require('path');
const { fileURLToPath } = require('url');
//想拼接兩個路徑。
console.log( path.join( 'd:\\a\\b' , 'file.txt') );
//__dirname : 目前這個node檔案的根目錄
//__filename : 目前這個node檔案的絕對位址
console.log( path.join( __dirname , 'file.txt') );
//path.parse() : 把路徑轉成各種資訊
console.log( path.parse(__filename) );
console.log( path.relative('d:\\a\\b' , 'd:\\a\\b\\file.txt') );  // file.txt
console.log( path.relative('d:\\a\\b\\file.txt' , 'd:\\a\\b') );  // ..
//可以把一個相對位址轉成一個絕對位址
console.log( path.resolve('./file.txt') );  // D:\ke\SZ-GP4\20201012\file.txt
           
  1. fs : 與檔案系統互動
    • readFile() : 異步讀取檔案
    • readFileSync() : 同步讀取檔案
    • writeFile()異步寫入檔案
    • writeFileSync : 同步寫入檔案。
    • appendFile()異步的追加資料到檔案,如果檔案不存在就建立檔案
    • unlink() : 異步的删除檔案或者符号連結。
    • rename() : 檔案重命名。
    • mkdir() : 建立檔案夾。
    • redir() : 删除檔案夾。
    • readdir() : 讀取檔案夾。
    • start():讀取檔案資訊
var fs = require('fs');
//并不是累加,格式重寫。
fs.writeFile('./a.txt','hi Node',function(err){});
//累加資料
fs.appendFile('./a.txt','hello vue',function(err){});

//如果檔案不存在,就先建立在寫入内容
fs.writeFile('./b.txt','hi Node',function(err){});

//删除檔案
fs.unlink('./b.txt',function(err){});

//重命名檔案
fs.rename('./a.txt','./c.txt',function(err){});

//建立檔案夾
fs.mkdir('myApp',function(err){});

//删除檔案夾
fs.rmdir('myApp',function(err){});

//讀取檔案夾
fs.readdir('../20201012',(err,data)=>{
    console.log(data);
});

//讀取檔案的詳細資訊
fs.stat('../20201012',(err,data)=>{
         console.log(data);
});
           
  • 自定義的子產品
    1. 通過require引入子產品
    2. 通過module.exports修改子產品。
  • 第三方子產品
    1. 下載下傳子產品 : cnpm install xxx
    2. 調用子產品

npm詳解

  • 官網 : https://www.npmjs.com/
  • 關于package.json :

    1. 建立 : npm init 或 npm init -y

    2. scripts : 定義了一組可以運作的 node 腳本。

    - 讓調用的指令變得簡單。 npm run 腳本的屬性。( 例 : npm run serve)

    - 調用局部安裝的軟體包。如果局部沒有這個包,才會找全局的包。直接在指令行中操作 -> 直接找全局的包。

    3. dependencies 設定了作為依賴安裝的 npm 軟體包的清單。

    - 生成環境 : 上線後用到的代碼。

    - 安裝方式 : npm i xxx --save (-S) 可以簡寫為 npm i xxx (預設為 -S方式)

    4. devDependencies 設定了作為開發依賴安裝的 npm 軟體包的清單。

    - 開發環境 : 包括有 gulp工具 webpack工具 …

    - 安裝方式 : npm i xxx --dev-save (簡寫 : npm i xxx -D);

    5. npm i : 可以根據package.json中的依賴,安裝所有用到的地方子產品。

    6. npm i --production 隻安裝生成環境的子產品。

    7. npm uninstall -g xxx : 全局删除

    8. npm uninstall -S xxx : 局部生成删除

    9. npm uninstall -D xxx : 局部開發删除

子產品版本問題

  • 安裝指定版本的子產品 : npm i [email protected]
  • 檢視具體有哪些版本 : npm view xxx versions
  • 版本 : (3.5.1) 大版本.中版本.更新檔版本
    1. latest | * : 最新版本
    2. ^1.2.3 : 大版本是固定,中版本和更新檔版本不固定
    3. ~1.2.3 : 大版本和中版本是固定,更新檔版本不固定
    4. 1.2.3 : 全部都是固定的
  • 更新 : npm update xxx -> 根據package.json中的版本号來進行更新。
  • 檢視項目中的所有過期子產品 : outdated
  • 鎖定版本 : package-lock.json 。 npm 去下載下傳子產品的時候 就會生成 package-lock.json 。如果有package-lock.json這個檔案,那麼npm i 就不會自動去安裝,而是安裝鎖定的版本。

局部子產品的建立

1. 本地把功能先開發好
    2.  npmjs.com 去新增賬號
    3. npm addUser : 添加賬号
    4. npm publish : 釋出到平台上
    5. npm unpublish : 删除包
           

全局子產品的建立

1. 開發功能
2. 給index.js 第一行添加指令 :  #! /usr/bin/env node
3. package.json 添加
       "bin": {
            "包名": "index.js"
          }
4. npm link  将全局包安裝(實際就是拷貝)到全局中
5. npm publish : 釋出到平台上