我的Node.js學(xué)習(xí)之路(二)NPM模塊管理
NPM是一個(gè)Node包管理和分發(fā)工具,已經(jīng)成為了非官方的發(fā)布Node模塊(包)的標(biāo)準(zhǔn)。有了NPM,可以很快的找到特定服務(wù)要使用的包,進(jìn)行下載、安裝以及管理已經(jīng)安裝的包。
NPM常用的命令有:
(1)$ npm install moduleNames
安裝Node模塊
注意事項(xiàng):如果在使用模塊的時(shí)候不知道其名字,可以通過(guò)http://search.npmjs.org網(wǎng)站按照
索引值找到想要的模塊。npm也提供了查詢的功能 $ npm search indexName
安裝完畢后會(huì)產(chǎn)生一個(gè)node_modules目錄,其目錄下就是安裝的各個(gè)node模塊。
node的安裝分為全局模式和本地模式。一般情況下會(huì)以本地模式運(yùn)行,包會(huì)被安裝
到和你的應(yīng)用代碼統(tǒng)計(jì)的本地node_modules目錄下。在全局模式下,Node包會(huì)被
安裝到Node的安裝目錄下的node_modules下。全局安裝命令為
$ npm install -g moduleName。獲知使用$npm set global=true來(lái)設(shè)定安裝模式
,$npm get global可以查看當(dāng)前使用的安裝模式。
(2)$ npm view moduleNames
查看node模塊的package.json文件夾
注意事項(xiàng):如果想要查看package.json文件夾下某個(gè)標(biāo)簽的內(nèi)容,可以使用
$ npm view moduleName labelName
(3)$ npm list
查看當(dāng)前目錄下已安裝的node包
注意事項(xiàng):Node模塊搜索是從代碼執(zhí)行的當(dāng)前目錄開(kāi)始的,搜索結(jié)果取決于當(dāng)前使用的目錄中
的node_modules下的內(nèi)容。$ npm list parseable=true可以目錄的形式來(lái)展現(xiàn)當(dāng)
前安裝的所有node包
(4)$ npm help
查看幫助命令
(5)$ npm view moudleName dependencies
查看包的依賴關(guān)系
(6)$ npm view moduleName repository.url
查看包的源文件地址
(7)$ npm view moduleName engines
查看包所依賴的Node的版本
(8)$npm help folders
查看npm使用的所有文件夾
(9)$ npm rebuild moduleName
用于更改包內(nèi)容后進(jìn)行重建
(10)$ npm outdated
檢查包是否已經(jīng)過(guò)時(shí),此命令會(huì)列出所有已經(jīng)過(guò)時(shí)的包,可以及時(shí)進(jìn)行包的更新
(11)$ npm update moduleName
更新node模塊
(12)$ npm uninstall moudleName
卸載node模塊
(13)一個(gè)npm包是包含了package.json的文件夾,package.json描述了這個(gè)文件夾的結(jié)構(gòu)。訪
問(wèn)npm的json文件夾的方法如下:
$ npm help json
此命令會(huì)以默認(rèn)的方式打開(kāi)一個(gè)網(wǎng)頁(yè),如果更改了默認(rèn)打開(kāi)程序則可能不會(huì)以網(wǎng)頁(yè)的形式打
開(kāi)。
(14)發(fā)布一個(gè)npm包的時(shí)候,需要檢驗(yàn)?zāi)硞€(gè)包名是否已存在
$ npm search packageName
(15)很多時(shí)候我們?cè)谑褂靡粋€(gè)npm包的時(shí)候經(jīng)常會(huì)忘記了require其相互依賴的模塊,我們可以
借助如如下命令來(lái)查看此模塊相互依賴的包都有哪些
npm是Node.JS的程序包管理器。進(jìn)行Node.JS開(kāi)發(fā)時(shí),經(jīng)常使用它安裝/卸載程序包。實(shí)際上,發(fā)布程序包的工作也是由它來(lái)完成的。
配置package.json
要打包程序,首先要配好各項(xiàng)設(shè)置,這些設(shè)置都由程序包根目錄下的package.json指定。package.json的內(nèi)容必須是嚴(yán)格的JSON格式,也就是說(shuō):
字符串要用雙引號(hào)括起來(lái),而不能用單引號(hào);
屬性名一定要加雙引號(hào);
最后一個(gè)屬性后千萬(wàn)不要多加一個(gè)逗號(hào)。
配置對(duì)象的屬性很多,具體可以參閱這里,這里列一下常用的項(xiàng)目:
name:程序包名,不能跟已有的程序包重復(fù)。
version:版本號(hào)。
description:一段簡(jiǎn)短的介紹。
author:作者信息。包含name、email、url三項(xiàng)屬性。
bin:如果程序中有可執(zhí)行文件(主要是命令行里面調(diào)用的),就在這里指定,可以指定多個(gè)。
main:使用require調(diào)用本程序包時(shí)的程序入口。
dependencies:依賴的程序包,可以指定版本號(hào)。
配置好package.json后,可以先在本地打包安裝一次,測(cè)試程序運(yùn)作是否正常,安裝命令為:
npm install <本地路徑>
另外,還有一條潛規(guī)則要注意,如果你希望程序包中的可執(zhí)行程序在Node.JS的環(huán)境中運(yùn)行,那么,請(qǐng)?jiān)诔绦蛉肟谖募淖钋懊婕由线@樣一行:
#!/usr/bin/env node
如果沒(méi)有這一行,它將以系統(tǒng)默認(rèn)的方式打開(kāi),而不是在Node.JS的環(huán)境中運(yùn)行。
注冊(cè)npm帳號(hào)
要把程序包發(fā)布到npm,還需要先注冊(cè)一個(gè)帳號(hào)。npm并沒(méi)有提供網(wǎng)頁(yè)版的注冊(cè)向?qū)?。注?cè)也要通過(guò)命令行來(lái)進(jìn)行:
npm adduser
執(zhí)行此命令后,會(huì)依次出現(xiàn)輸入用戶名、Email、密碼的提示,輸入好之后等待一會(huì)兒就可以了。
發(fā)布程序包
準(zhǔn)備工作都做好了,執(zhí)行下面的命令就可以發(fā)布程序包:
npm publish <本地路徑>
如果要更新程序包,只要修改一下package.json中的版本號(hào),再重新執(zhí)行發(fā)布命令就可以了。
相關(guān)文章
Node.js全局對(duì)象Global的實(shí)現(xiàn)
在Nodejs下全局變量和全局函數(shù)都是可以使用global來(lái)訪問(wèn)到的,本文主要介紹了Node.js全局對(duì)象Global的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12node?NPM庫(kù)string-random生成隨機(jī)字符串學(xué)習(xí)使用
這篇文章主要為大家介紹了node?NPM庫(kù)string-random生成隨機(jī)字符串學(xué)習(xí)使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07如何正確使用Nodejs 的 c++ module 鏈接到 OpenSSL
這篇文章主要介紹了如何正確使用Nodejs 的 c++ module 鏈接到 OpenSSL,需要的朋友可以參考下2014-08-08Node.js實(shí)現(xiàn)斷點(diǎn)續(xù)傳
上傳圖片、Excel等,畢竟幾M的大小可以很快就上傳到服務(wù)器。 針對(duì)于上傳視頻等大文件幾百M(fèi)或者幾G的大小,就需要等待比較長(zhǎng)的時(shí)間。這就產(chǎn)生了對(duì)應(yīng)的解決方法,對(duì)于大文件上傳時(shí)的暫停、斷網(wǎng)、網(wǎng)絡(luò)較差的情況下, 使用切片+斷點(diǎn)續(xù)傳就能夠很好的應(yīng)對(duì)上述的情況2021-06-06參考?EventEmitter實(shí)現(xiàn)一個(gè)簡(jiǎn)單的訂閱發(fā)布功能函數(shù)
這篇文章主要為大家介紹了參考?EventEmitter實(shí)現(xiàn)一個(gè)簡(jiǎn)單的訂閱發(fā)布功能函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02