npm和package是什么
npm和package是什么
目錄
1.背景介紹
2.知識剖析
3.常見問題
4.解決方案
5.編碼實戰
6.擴展思考
7.參考文獻
8.更多討論
1.背景介紹
NPM是什么
NPM(node package manager),通常稱為node包管理器。顧名思義,它的主要功能就是管理node包,包括:安裝、卸載、更新、查看、搜索、發布等。
npm的背后,是基于couchdb的一個數據庫,詳細記錄了每個包的信息,包括作者、版本、依賴、授權信息等。它的一個很重要的作用就是:將開發者從繁瑣的包管理工作(版本、依賴等)中解放出來,更加專注于功能的開發。
我們需要了解什么
1.npm的安裝
2.npm的使用:package的安裝、卸載、升級、查看、搜索、發布
3.npm包的安裝模式:本地 vs 全局
4.package.json:包描述信息
5.package版本:常見版本聲明形式
2.知識剖析
npm包安裝模式
node包的安裝分兩種:本地安裝、全局安裝。兩者的區別如下:
本地安裝:npm install pkg,package會被下載到當前所在目錄,也只能在當前目錄下使用。
全局安裝:npm install -g pkg,package會被下載到到特定的系統目錄下,安裝的package能夠在所有目錄下使用
有個東西叫cnpm,是淘寶的人提供的一個npm的鏡像。每10分鐘就和官方版本同步一次。服務器是在國內的,不用擔心速度和被墻的問題。
通過這條命令安裝cnpm:
npm install -g cnpm
-g是global裝在全局空間
通過package.json進行安裝
如果我們的項目依賴了很多package,一個一個地安裝那將是個體力活。我們可以將項目依賴的包都在package.json這個文件里聲明,然后一行命令搞定
npm install
其他package安裝命令
運行如下命令,列出所有npm install可能的參數形式
npm install –help
卸載:npm uninstall pkg
npm ls:查看當前目錄安裝了哪些package
npm info pkg:查看特定package的詳細信息
npm update pkg:package更新
npm search pgk:搜索
3.常見問題
什么是package.json?
4.解決方案
假設當我們下載了node應用,這個node應用依賴于A、B、C三個包,如果沒有package.json,我們需要人肉安裝這個三個包(如果對版本有特定要求就更悲劇了):
npm install A
npm install B
npm install C
有了package.json,一行命令安裝所有依賴。
npm install
5.編碼實戰
npm 允許在package.json文件里面,使用scripts字段定義腳本命令。
“scripts”: {“build”: “node build.js”}
上面代碼是package.json文件的一個片段,里面的scripts字段是一個對象。它的每一個屬性,對應一段腳本。比如,build命令對應的腳本是node build.js
命令行下使用npm run命令,就可以執行這段腳本。
npm run build
node build.js
6.擴展思考
package.json字段簡介
package.json中最重要的屬性是name和version兩個屬性,這兩個屬性是必須要有的,否則模塊就無法被安裝,這兩個屬性一起形成了一個npm模塊的唯一標識符。模塊中內容變更的同時,模塊版本也應該一起變化。
name屬性就是你的模塊名稱,下面是一些命名規則:
1.必須小于等于214個字節,包括前綴名稱在內(如 x/xmodule)。
2.name屬性會成為模塊url、命令行中的一個參數或者一個文件夾名稱,任何非url安全的字符在name中都不能使用,也不能以”_”或”.”開頭,不能含有大寫字母
3.不要使用和node核心模塊一樣的名稱,明早不要含有”js”和”node”。
4.name屬性也許會被寫在require()的參數中,所以最好取個簡短而語義化的值。
5.創建一個模塊前可以先到https://www.npmjs.com查查name是否已經被占用
version:
package的版本,當package發生變化時,version也應該跟著一起變化,同時,version必須可以被npm依賴的一個node-semver模塊解析
description:
package的應用依賴模塊,即別人要使用這個package,至少需要安裝哪些東東。應用依賴模塊會安裝到當前模塊的node_modules目錄下。
devDependencies:
package的開發依賴模塊,即別人要在這個package上進行開發
常見版本聲明形式
“~1.2.3” 是神馬意思呢:
”~1.2.3” = “>=1.2.3 <1.3.0”
“1.x.x”是什么意思呢:
”1.2.x” = “>=1.2.0 <1.3.0”
~version “約等于”,^version “兼容版本”
7.參考文獻
npm package.json屬性詳解:http://www.cnblogs.com/tzyy/p/5193811.html
8.更多討論
Q1:初學npm怎么開始
下載node.js會自帶npm
Q2:建一個vue-cli
vue init webpack my-project
Q3:npm和cnpm的區別
npm是官方的,需要翻墻,有時下載會很慢,
用cnpm的話可以提高效率
總結
以上是生活随笔為你收集整理的npm和package是什么的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【TensorFlow】Keras机器学
- 下一篇: C语言中唯一的一个三目运算符(条件运算符