【Nodejs】包資源管理器NPM (Node Package Manager) node包管理和分發工具

包資源管理器NPM

什麼是NPM

npm全稱Node Package Manager,是node包管理和分發工具。可以理解爲Maven跟Maven差不多的功能管理依賴。

通過npm 可以很方便地下載js庫,管理前端工程。

現在的node.js已經集成了npm工具,在命令提示符輸入 npm -v 可查看當前npm版本

C:\Users\x1c>npm -v
6.5.0

C:\Users\x1c>node -v
v11.9.0

C:\Users\x1c>

NPM命令

初始化工程

init命令是工程初始化命令。

建立一個空文件夾或者直接在工程中,在命令提示符進入該文件夾

執行命令初始化

npm init

在這裏插入圖片描述

按照提示輸入相關信息,如果是用默認值則直接回車即可。
name: 項目名稱
version: 項目版本號
description: 項目描述
keywords: {Array}關鍵詞,便於用戶搜索到我們的項目
最後會生成package.json 文件,這個是包的配置文件,相當於maven的pom.xml
之後也可以根據需要進行修改。

在這裏插入圖片描述

package.json

{
  "name": "nodejs",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

本地安 裝

install命令用於安裝某個模塊,可以通過require引入到項目中使用。如我們想安裝express模塊(node的web框架),輸出命令如下:

npm install express

管理員身份打開

在這裏插入圖片描述

在這裏插入圖片描述

出現警告信息,可以忽略,請放心,你已經成功執行了該命令。
在該目錄下已經出現了一個node_modules文件夾 和package-lock.json
node_modules文件夾用於存放下載的js庫(相當於maven的本地倉庫)
package-lock.json是當 node_modules 或 package.json 發生變化時自動生成的文件。這個文件主要功能是確定當前安裝的包的依賴,以便後續重新安裝的時候生成相同的依賴,而忽略項目開發過程中有些依賴已經發生的更新(可
能存在切換了不同的鏡像源後,同一個大版本號下可能出現兼容問題,package-lock可以保證即使換了源,下載的文件和原來的可以保持一致)。
我們再打開package.json文件,發現剛纔下載的express已經添加到依賴列表中了。

在這裏插入圖片描述

關於版本號定義:

指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式規定,安裝時只安裝指定版本。
波浪號(tilde)+指定版本:比如~1.2.2,表示安裝1.2.x的最新版本(不低於1.2.2),但是不安裝1.3.x,也就是說安裝時不改變大版本號和次要版本號。

插入號(caret)+指定版本:比如ˆ1.2.2,表示安裝1.x.x的最新版本(不低於1.2.2),但是不安裝2.x.x,也就是說安裝時不改變大版本號。需要注意的是,如果大版本號爲0,則插入號的行爲與波浪號相同,這是因爲此時處於開發階段,即使是次要版本號變動,也可能帶來程序的不兼容。

latest:安裝最新版本。

全局安裝

剛纔使用的是本地安裝,會將js庫安裝在當前目錄,而使用全局安裝會將庫安裝到我的全局目錄下。全局安裝之後可以在 命令行 使用該安裝的模塊對應的內容或命令。
如果不知道自己的全局目錄在哪裏,執行命令查看全局目錄路徑

npm root -g

默認全局目錄在
C:\Users\Administrator\AppData\Roaming\npm\node_modules

我是配置了的 在這裏

F:\workspaces\nodejs>npm root -g
D:\Environments\nodejs\node_global\node_modules

F:\workspaces\nodejs>

比如全局安裝jquery, 輸入以下命令

# 安裝之後在全局目錄下會存在對應的jquery目錄,其裏面的dist則包含有對應的jquery.js文件
npm install jquery -g

在這裏插入圖片描述
npm是一個node.js的管理和分發工具,可以根據配置package.json下載js庫。

  • 本地安裝:將下載的模塊安裝到當前目錄(項目);
  • 全局安裝:將下載的模塊安裝到全局的目錄( npm root -g

批量下載

從網上下載某些代碼,發現只有package.json,沒有node_modules文件夾,這時需要通過命令重新下載這些js庫.
進入目錄(package.json所在的目錄)輸入命令

npm install

此時,npm會自動下載package.json中依賴的js庫。

package.json

pom.xml

切換NPM鏡像

有時我們使用npm下載資源會很慢,所以可以切換下載的鏡像源(如:淘寶鏡像);或者安裝一個cnmp(指定淘寶鏡
像)來加快下載速度。

1、如果使用切換鏡像源的方式,可以使用一個工具:nrm
首先安裝nrm,這裏-g 代表全局安裝

# 管理員身份 打開cmd執行如下命令
npm install nrm -g

然後通過nrm ls 命令查看npm的倉庫列表,帶*的就是當前選中的鏡像倉庫:

在這裏插入圖片描述

通過nrm use taobao 來指定要使用的鏡像源:

nrm use taobao

2、如果使用cnpm的方式,則先安裝cnpm,輸入如下命令

# 如果不使用nrm 切換,可以在安裝cnpm的時候指定鏡像倉庫
npm install -g cnpm --registry=https://registry.npm.taobao.org

安裝後,我們可以使用以下命令來查看cnpm的版本

cnpm -v

使用cnpm

cnpm install 需要下載的js庫;一般只有在下載模塊的時候才使用cnpm,其它情況還是一樣使用npm;

運行工程說明

如果我們想運行某個工程,則使用run命令
如果package.json中定義的腳本中有:
dev是開發階段測試運行
build是構建編譯工程
lint 是運行js代碼檢測
運行時命令格式:

npm run dev或者build或者lint

編譯工程說明

編譯後的代碼會放在dist文件夾中,進入命令提示符輸入命令

npm run build

生成後會發現只有個靜態頁面,和一個static文件夾
這種工程我們稱之爲單頁Web應用(single page web application,SPA),就是隻有一張Web頁面的應用,是加載單個HTML 頁面並在用戶與應用程序交互時動態更新該頁面的Web應用程序。
這裏其實是調用了webpack來實現打包的,關於webpack下面的章節將進行介紹。

包資源管理器NPM

目標:說出npm的作用;區別本地安裝和全局安裝

小結

npm是一個node.js的管理和分發工具,可以根據配置package.json下載js庫。

  • 本地安裝:將下載的模塊安裝到當前目錄(項目);
  • 全局安裝:將下載的模塊安裝到全局的目錄( npm root -g

切換NPM鏡像

目標:安裝nrm組件將npm的鏡像切換爲淘寶鏡像

小結

  • 使用nrm 切換鏡像源
npm install nrm -g

nrm use taobao
  • 使用cnpm下載
npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm install **
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章