//協助我們建立 Node.js 專案的描述檔 npm init
package name: 你這個 Project 要叫什麼名字
version: 你決定這個 Project 現在該是第幾版
description: Project 基本介紹
entry point: 進入點,如果要跑你的 Project 應該要執行哪個檔案
author: 作者(自己)
license: 你這個 Project 是採用什麼授權(前面文檔篇有提過喔 https://ithelp.ithome.com.tw/articles/10234890)
test command: 這個不太重要,待會會說明
基本上結束後,你可以看到這個資料夾底下,新增了一個 Package.json
安裝第三方套件
npm install <套件名稱>
npm常用縮寫
有時我們輸入npm i 的時候 Npm會幫我們做小更新,(邪惡的npm 怒),
因此在專案執行期間,我們會以npm ci來代替npm i,以避免某個套件新,照成其他套件的不相容。
//是npm install express的縮寫
npm i express// npm ci express
//是npm install express-save 的縮寫
npm i express -S
//是npm install -save-dev 的縮寫
npm i express -D
save 與 save-dev
在 package.json裡,分別是指到 dependencies 與 devDependencies 下
在 package.json裡,只有寫入 devDependencies 下
dependencies : 使用在已經發布的環境下,換句話說,是指發布後仍然需要依賴使用的 plug-in。舉個例子來說,如果我需要使用 jQuery 與 AngularJs 來開發,就算開發完之後發佈到伺服器,我仍然需要依 賴 jQuery 與 AngularJs 的套件,這些套件會在發布後繼續使用。
用法:當我執行 npm install –production 或是註明 NODE_ENV 變量值为為 production 時,只會下載 dependencies 中的套件。
devDependencies : 使用在開發中的環境下,意思是指——只單純會在開發時應用到的 plug-in。同樣舉個例子,如果我在開發時需要使用 Js ES6 並使用 babel 轉換成 ES5,或是我希望可以使用 gulp-stylus 的套件來使用,但在發佈之後,我們並不會在用到 gulp-stylus 這個套件。換句話說,他只需要存在於開發環境中,而不需要繼續放到發布環境裏。
用法:鍵入 npm install 時,會同時抓下來 dependencies & devDependencies 兩個節點之中的套件。
更新套件與解除安裝
//更新套件:npm update 可一次更新專案中的所有套件
npm update
//可加入 -g 參數,更新全域套件
npm update -g
//刪除套件:npm uninstall 套件名稱,以下解除安裝 express 範例
npm uninstall express
//使用 -g 安裝的套件,刪除時,也必須加入 -g 參數
npm uninstall firebase-tools -g
全域安裝與局部安裝
全域性安裝方式 :
npm install <套件名稱> -g 或npm install <套件名稱>
包安裝在Node安裝目錄下的node_modules資料夾中,一般在 \Users\使用者名稱\AppData\Roaming\ 目錄下,可以使用npm root -g檢視全域性安裝目錄
局部安裝:
npm install <套件名稱> 或npm install <套件名稱> –save-dev
其中引數–save-dev的含義是代表把你的安裝包資訊寫入package.json檔案的devDependencies欄位中,包安裝在指定專案的node_modules資料夾下。
對於包的更新不好管理,可能你需要為每個包重新命名,如gulp@3.8.1、gulp@3.9.1...,為了區別不同項目使用指定的包,保證模塊之間的相互依賴(這塊下面會介紹),區別每個項目正常運行。
因此,不推薦只全局安裝。
另外,據node團隊介紹,本地安裝包對於專案的載入會更快。
npm 就先到這理了喔,明天開始研究Babel這個語法轉換小精靈。