亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

node包管理工具-----npm

2024-04-27 15:13:28
字體:
來源:轉載
供稿:網友

nodejs的出現,可以算是前端里程碑式的一個事件,它讓前端攻城獅們擺脫了瀏覽器的束縛,踏上了一個更加寬廣的舞臺。前端的可能性,從此更加具有想象空間。

隨著一系列基于nodes的應用/工具的出現,工作中與nodejs打交道的機會越來越多。無論在node應用的開發,還是使用中,包管理都扮演著一個很重要的作用。NPM(node package manager),作為node的包管理工具,極大地便利了我們的開發工作,很有必要了解一下。

NPM是什么

NPM(node package manager),通常稱為node包管理器。顧名思義,它的主要功能就是管理node包,包括:安裝、卸載、更新、查看、搜索、發布等。

npm的背后,是基于couchdb的一個數據庫,詳細記錄了每個包的信息,包括作者、版本、依賴、授權信息等。它的一個很重要的作用就是:將開發者從繁瑣的包管理工作(版本、依賴等)中解放出來,更加專注于功能的開發。

npm官網: https://npmjs.org/

npm官方文檔: https://npmjs.org/doc/README.html

我們需要了解什么

npm的安裝、卸載、升級、配置 npm的使用:package的安裝、卸載、升級、查看、搜索、發布 npm包的安裝模式:本地 vs 全局 package.json:包描述信息 package版本:常見版本聲明形式 npm包安裝模式

在具體介紹npm包的管理之前,我們首先得來了解一下npm包的兩種安裝模式。

本地安裝 vs 全局安裝(重要)

node包的安裝分兩種:本地安裝、全局安裝。兩者的區別如下,后面會通過簡單例子說明

本地安裝:package會被下載到當前所在目錄,也只能在當前目錄下使用。 全局安裝:package會被下載到到特定的系統目錄下,安裝的package能夠在所有目錄下使用。 npm install pkg - 本地安裝

運行如下命令,就會在當前目錄下安裝 grunt-cli (grunt命令行工具)

npm install grunt-cli 安裝結束后,當前目錄下回多出一個 node_modules 目錄,grunt-cli就安裝在里面。同時注意控制臺輸出的信息:

grunt-cli@0.1.9 node_modules/grunt-cli ├── resolve@0.3.1 ├── nopt@1.0.10 (abbrev@1.0.4) └── findup-sync@0.1.2 (lodash@1.0.1, glob@3.1.21) 簡單說明一下:

grunt-cli@0.1.9:當前安裝的package為grunt-cli,版本為0.19 node_modules/grunt-cli:安裝目錄 resolve@0.3.1:依賴的包有resolve、nopt、findup-sync,它們各自的版本、依賴在后面的括號里列出來 npm install -g pkg- 全局安裝

上面已經安裝了grunt-cli,然后你跑到其他目錄下面運行如下命令

grunt 果斷提示你grunt命令不存在,為什么呢?因為上面只是進行了 本地安裝 ,grunt命令只能在對應安裝目錄下使用。

-bash: grunt: command not found 如果為了使用grunt命令,每到一個目錄下都得重新安裝一次,那不抓狂才怪。腫么辦呢?

很簡單,采用全局安裝就行了,很簡單,加上參數 -g 就可以了

npm install -g grunt-cli 于是,在所有目錄下都可以無壓力使用 grunt 命令了。這個時候,你會注意到控制臺輸入的信息有點不同。主要的區別在于安裝目錄,現在變成了 /usr/local/lib/node_modules/grunt-cli , /usr/local/lib/node_modules/ 也就是之前所說的全局安裝目錄啦。

grunt-cli@0.1.9 /usr/local/lib/node_modules/grunt-cli ├── resolve@0.3.1 ├── nopt@1.0.10 (abbrev@1.0.4) └── findup-sync@0.1.2 (lodash@1.0.1, glob@3.1.21) npm包管理

npm的包管理命令是使用頻率最高的,所以也是我們需要牢牢記住并熟練使用的。其實無非也就是幾個動作:安裝、卸載、更新、查看、搜索、發布等。

安裝最新版本的grunt-cli

npm install grunt-cli 安裝0.1.9版本的grunt-cli

npm install grunt-cli@”0.1.9” 通過package.json進行安裝

如果我們的項目依賴了很多package,一個一個地安裝那將是個體力活。我們可以將項目依賴的包都在package.json這個文件里聲明,然后一行命令搞定

npm install 其他package安裝命令

運行如下命令,列出所有 npm install 可能的參數形式

npm install –help 輸出如下,有興趣的童鞋可以了解下

npm install npm install npm install npm install npm install @ npm install @ npm install @ 卸載grunt-cli

比如卸載grunt-cli

npm uninstall grunt-cli 卸載0.1.9版本的grunt-cli

npm uninstall grunt-cli@”0.1.9” npm ls:查看安裝了哪些包

運行如下命令,就可以查看當前目錄安裝了哪些package

npm ls 輸出如下

/PRivate/tmp/npm └─┬ grunt-cli@0.1.9 ├─┬ findup-sync@0.1.2 │ ├─┬ glob@3.1.21 │ │ ├── graceful-fs@1.2.3 │ │ ├── inherits@1.0.0 │ │ └─┬ minimatch@0.2.12 │ │ ├── lru-cache@2.3.0 │ │ └── sigmund@1.0.0 │ └── lodash@1.0.1 ├─┬ nopt@1.0.10 │ └── abbrev@1.0.4 └── resolve@0.3.1 輸出如下,同樣,如果是要查看package的全局安裝信息,加上 -g 就可以

npm ls pkg:查看特定package的信息

運行如下命令,輸出grunt-cli的信息

npm ls grunt-cli 輸出的信息比較有限,只有安裝目錄、版本,如下:

/private/tmp/npm └── grunt-cli@0.1.9 如果要查看更詳細信息,可以通過 npm info pkg ,輸出的信息非常詳盡,包括作者、版本、依賴等。

npm info grunt-cli npm update pkg:package更新

npm update grunt-cli npm search pgk:搜索

輸入如下命令

npm search grunt-cli 返回結果如下

npm http GET http://registry.npmjs.org/-/all/since?stale=update_after&startkey=1375519407838 npm http 200 http://registry.npmjs.org/-/all/since?stale=update_after&startkey=1375519407838 NAME DESCRipTION AUTHOR DATE KEYWordS grunt-cli The grunt command line interface. =cowboy =tkellen 2013-07-27 02:24 grunt-cli-dev-exitprocess The grunt command line interface. =dnevnik 2013-03-11 16:19 grunt-client-compiler Grunt wrapper for client-compiler. =rubenv 2013-03-26 09:15 gruntplugin grunt-clientside Generate clientside js code from CommonJS modules =jga 2012-11-07 01:20 gruntplugin npm發布

這個命令我自己也還沒實際用過,不誤導大家,語法如下,也可參考官方對于package發布的說明 https://npmjs.org/doc/developers.html :

npm publish npm publish NPM配置

npm的配置工作主要是通過 npm config 命令,主要包含增、刪、改、查幾個步驟,下面就以最為常用的proxy配置為例。

設置proxy

內網使用npm很頭痛的一個問題就是代理,假設我們的代理是 http://proxy.example.com:8080,那么命令如下:

npm config set proxy http://proxy.example.com:8080 由于 npm config set 命令比較常用,于是可以如下簡寫

npm set proxy http://proxy.example.com:8080 查看proxy

設置完,我們查看下當前代理設置

npm config get proxy 輸出如下:

http://proxy.example.com:8080/ 同樣可如下簡寫:

npm get proxy 刪除proxy

代理不需要用到了,那刪了吧

npm delete proxy 查看所有配置

npm config list 直接修改配置文件

有時候覺得一條配置一條配置地修改有些麻煩,就直接進配置文件修改了

npm config edit 關于package.json

這貨在官網似乎沒有詳細的描述,其實就是包的描述信息啦。假設當我們下載了node應用,這個node應用依賴于A、B、C三個包,如果沒有package.json,我們需要人肉安裝這個三個包(如果對版本有特定要求就更悲劇了):

npm install A npm install B npm install C 有了package.json,一行命令安裝所有依賴。

npm install package.json字段簡介

字段相當多,但最重要的的是下面幾個

name: package的名字(由于他會成為url的一部分,所以 non-url-safe 的字母不會通過,也不允許出現”.”、”_”),最好先在 http://registry.npmjs.org/上搜下你取的名字是否已經存在 version: package的版本,當package發生變化時,version也應該跟著一起變化,同時,你聲明的版本需要通過semver的校驗(semver可自行谷歌) dependencies: package的應用依賴模塊,即別人要使用這個package,至少需要安裝哪些東東。應用依賴模塊會安裝到當前模塊的node_modules目錄下。 devDependencies:package的開發依賴模塊,即別人要在這個package上進行開發 其他:參見官網 package版本

在package.json里,你經常會在包名后看到類似”~0.1.0”這樣的字符串,這就是包的版本啦。下面會列舉最常見的版本聲明形式,以及版本書寫的要求:

常見版本聲明形式

a、”~1.2.3” 是神馬意思呢,看下面領悟

“~1.2.3” = “>=1.2.3 <1.3.0” “~1.2” = “>=1.2.0 <1.3.0” “~1” = “>=1.0.0 <1.1.0” b、”1.x.x”是什么意思呢,繼續自行領悟

“1.2.x” = “>=1.2.0 <1.3.0” “1.x.x” = “>=1.0.0 <2.0.0” “1.2” = “1.2.x” “1.x” = “1.x.x” “1” = “1.x.x” 版本書寫要求

版本可以v開頭,比如 v1.0.1(v只是可選) 1.0.1-7,這里的7是所謂的“構建版本號”,不理是神馬,反正版本大于1.0.1 1.0.1beta,或者1.0.1-beta,如果1.0.1后面不是 “連字符加數字” 這種形式,那么它是pre release 版本,即版本小于 1.0.1 根據b、c,有:0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta 寫在后面

內容只是簡單地把最常見的命令,以及一些需要了解的內容列了出來。如要進一步了解,可參考官網說明。此外, npm help 是我們最好的朋友,如果忘了有哪些命令,命令下有哪些參數,可通過help進行查看。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区福利视频| 日本午夜精品理论片a级appf发布| 国产一区二区三区日韩欧美| 亚洲天堂网站在线观看视频| 亚洲高清久久久久久| 国产精品视频26uuu| 久久久亚洲国产| 日韩人在线观看| 91沈先生作品| 亚洲电影在线观看| 日韩一中文字幕| 国产精品video| 欧美精品日韩三级| 国产欧美精品在线播放| 欧美黑人国产人伦爽爽爽| 69国产精品成人在线播放| 亚洲天堂久久av| 1769国产精品| 欧美区在线播放| 91久久精品一区| 精品亚洲男同gayvideo网站| 日韩中文在线中文网在线观看| 最近2019中文字幕第三页视频| 久久久精品一区| 国产最新精品视频| www.日韩欧美| 国产精品激情自拍| 国内精品久久久久| 日本19禁啪啪免费观看www| 成人乱人伦精品视频在线观看| 亚洲理论在线a中文字幕| 4438全国亚洲精品在线观看视频| 久久黄色av网站| 欧美电影在线观看高清| 国产免费成人av| 国产一区二区三区四区福利| 这里只有精品丝袜| 亚洲欧美日本精品| 国产精品久久久久久久一区探花| 大荫蒂欧美视频另类xxxx| 日韩经典中文字幕在线观看| 国产主播欧美精品| 久久久久久网址| 日韩精品一区二区三区第95| 国产亚洲欧美视频| 亚洲福利在线视频| 国产精品久久综合av爱欲tv| 欧美精品久久一区二区| 欧美成人久久久| 久久精品91久久久久久再现| xxav国产精品美女主播| 亚洲最大的网站| 欧美国产精品人人做人人爱| 亚洲激情电影中文字幕| 国产中文欧美精品| 国产精品视频一区国模私拍| 91免费国产视频| 国产91在线视频| 欧美日韩国产黄| 国产精品久久久久久一区二区| 热久久免费国产视频| 国产日韩专区在线| 精品视频久久久久久久| 国产成人精品电影| 久久九九亚洲综合| 亚洲xxxxx电影| 久久久av亚洲男天堂| 欧美激情综合色综合啪啪五月| 九九精品在线视频| 3344国产精品免费看| 亚洲人成欧美中文字幕| 亚洲国产成人精品一区二区| 亚洲综合视频1区| 亚洲国产高清福利视频| 911国产网站尤物在线观看| 精品久久久久久久久久久| 亚洲精品久久久久久久久| 日韩av电影院| 91最新国产视频| xxxxx成人.com| 97精品久久久| 亚洲精品福利资源站| 国产成人拍精品视频午夜网站| 97在线视频免费| 国产精品高潮呻吟久久av无限| 日韩亚洲欧美成人| 日韩亚洲国产中文字幕| 国产欧美一区二区| 久久九九精品99国产精品| 亚洲精品国产欧美| 欧美裸身视频免费观看| 在线观看欧美成人| 欧美老妇交乱视频| 国产精品在线看| 国产v综合v亚洲欧美久久| 久久综合色影院| 亚洲tv在线观看| 日韩视频精品在线| 日韩在线观看精品| 国产精国产精品| 成人写真视频福利网| 2019中文字幕在线免费观看| 日韩视频免费中文字幕| 欧美一区二区三区免费视| 久久91超碰青草是什么| 亚洲精品成人久久电影| 欧美激情奇米色| 久久久国产一区二区三区| 亚洲在线免费观看| 国产不卡一区二区在线播放| 91精品国产乱码久久久久久蜜臀| 成人免费看黄网站| 日韩女在线观看| 日韩中文字幕在线精品| 国产精品扒开腿做爽爽爽的视频| 欧美福利视频在线观看| 久久av红桃一区二区小说| 亚洲xxx大片| 91视频九色网站| 91av在线精品| 欧美日韩美女在线观看| 久久精品91久久香蕉加勒比| 欧美日韩午夜视频在线观看| 欧美在线www| 精品久久久91| 国产精品白嫩美女在线观看| 最近2019中文字幕在线高清| 亚洲永久在线观看| 亚洲人成五月天| 欧美大片免费观看在线观看网站推荐| 亚洲少妇激情视频| 日韩天堂在线视频| 国产视频精品va久久久久久| 日本精品va在线观看| 91免费人成网站在线观看18| 久久久精品一区| 欧美大片网站在线观看| 色综合色综合网色综合| 最近2019中文字幕一页二页| 亚洲精品之草原avav久久| 欧美另类99xxxxx| 日韩精品视频在线免费观看| 国产精品一区二区三区久久久| 国产精品国产自产拍高清av水多| 久久资源免费视频| 色综合天天综合网国产成人网| 97精品久久久中文字幕免费| 亚洲欧美激情视频| 亚洲精品一区在线观看香蕉| 欧美黄色片视频| 欧美国产日韩中文字幕在线| 国产成人精品久久亚洲高清不卡| 国产不卡av在线| 亚洲综合中文字幕在线观看| 亚洲va码欧洲m码| 国产一区二区在线免费| 久久中文字幕在线| 国产拍精品一二三| 欧美亚洲第一页| 国产成人免费91av在线| 欧美香蕉大胸在线视频观看| 91久久久久久久久久| 国产日本欧美在线观看| 中文字幕精品一区二区精品|