- 相關(guān)推薦
使用NPM的技巧講解
對于一個(gè)項目,常用的一些npm簡(jiǎn)單命令包含的功能有:初始化一個(gè)文件夾(npminit),下載npm模塊(npminstall),創(chuàng )建測試(npmtest)和自定義腳本(npmrun)。但是,進(jìn)一步了解一些npm的使用技巧可以徹底改變你的日常開(kāi)發(fā)任務(wù)。今天百分網(wǎng)小編為大家整理的使用NPM的技巧講解,僅供學(xué)習參考,歡迎大家閱讀瀏覽!
如果你是一個(gè)Javascript系的開(kāi)發(fā)者,一定不會(huì )陌生NPM,它既是一個(gè)平臺,也是一個(gè)工具。在這個(gè)平臺上,我們能夠使用其他開(kāi)發(fā)者提供的功能代碼,當然我們也能將我們自己代碼提交到這里分享給世界上的開(kāi)發(fā)者。
[url=500]500[/url]
以下記錄一些NPM作為工具的一些使用技巧。
npmrc
.npmrc做為npm的配置文件,它可以定義在多個(gè)地方。
~/.npmrc
用戶(hù)根目錄,根目錄內所有的npm指令都會(huì )查詢(xún)到該配置
/path/to/npm/npmrc
npm內建配置文件
./.npmrc
當前項目根目錄,用于配置特定于當前項目的配置
npmrc對我們來(lái)說(shuō)十分有用,我們可以配置例如username、registry、email等信息。eg:
save=true
save-exact=true
email=wfsovereign@outlook.com
username=wfsovereign
registry=httPS://registry.npm.taobao.org
npm最讓人頭疼的問(wèn)題之一就是版本號了,這里配置了save和save-exact屬性,作用是讓我們npminstall指令安裝的依賴(lài)自動(dòng)保存在package.json文件的dependencies中并且讓版本號固定。
一些國內的服務(wù)器在拉取某些被墻的包的經(jīng)常會(huì )失敗或者速度很慢,這個(gè)時(shí)候我們可以試試淘寶NPM鏡像(這是一個(gè)完整npmjs.org鏡像,你可以用此代替官方版本(只讀),同步頻率目前為10分鐘一次以保證盡量與官方服務(wù)同步)。官方還定制了cnpm,這個(gè)看具體情況而定了。比如,我曾經(jīng)的一個(gè)項目,部署在微軟的Asure上面,這個(gè)服務(wù)器感覺(jué)被墻的厲害,用官方的npm庫下phantomjs的zip文件運氣好的話(huà)也得下個(gè)兩三次才能下下來(lái),后來(lái)為了解決這個(gè)問(wèn)題嘗試了淘寶鏡像,不過(guò)問(wèn)題就出在用了cnpm,用cnpm拉的包在本地編譯不了,后來(lái)?yè)Q回npm,使用淘寶鏡像,一切正常了~
package.json
package.json是項目的配置管理文件,它定義了這個(gè)項目所需要的各個(gè)依賴(lài)模塊以及項目的配置信息(名字,版本號,許可證等)。一個(gè)最基本的package.json必須有name和version,差不多長(cháng)這樣:
{
"name":"xxx",
"version":0.0.0
}
我們可以通過(guò)npminit指令初始化創(chuàng )建一個(gè)package.json文件,
[url=500]500[/url]
下面分屬性介紹
scripts
scripts定義了一些腳本指令的npm命令縮寫(xiě),通過(guò)這些命令我們可以方便的啟動(dòng)項目、進(jìn)行測試或者拿到一些鉤子來(lái)做某些指令前預先做的事,
[url=406]406[/url]
當我們執行npmtest會(huì )得到如下輸出:
[url=404]404[/url]
通過(guò)如上實(shí)驗,我們能夠知道,prexx指令是一個(gè)預執行指令,postxx是一個(gè)后置指令,他倆都和xx指令強相關(guān)。
main
main指定項目加載的入口文件,默認是根目錄的inde.js
file
file是一個(gè)字符串的數組,指定我們發(fā)布的包應該包含當前目錄的哪些文件,這個(gè)在我們發(fā)布包的時(shí)候很有用,因為開(kāi)發(fā)包里面的文件夾不是都需要發(fā)布出去的。當然一下文件是始終會(huì )被包含進(jìn)去的,不論我們是否設置,
package.json
README
CHANGES/CHANGELOG/HISTORY
LICENSE/LICENCE
NOTICE
Thefileinthe“main”field
keywords
keywords指定了在庫中搜索時(shí)能夠被哪些關(guān)鍵字搜索到,所以一般這個(gè)會(huì )多寫(xiě)一些項目相關(guān)的詞在這里,這是一個(gè)字符串的數組。
其余屬性詳情可以查詢(xún)官方文檔
semanticversion
關(guān)于語(yǔ)義化的版本號,這里不多講,放一些preference
npmsemver
Gravatarssemver
Nodejs項目中最常見(jiàn)的一些版本標識(*,~,^),經(jīng)常忘了它們的含義,這里記錄一下:
*任意版本
1.0.0安裝指定的1.0.0版本
lodash:4.7.0會(huì )安裝準確的4.7.0到我們的node_module目錄
~1.0.0安裝>=1.0.0小于1.(0+1).0的最新版本
^1.0.0安裝>=1.0.0小于(1+1).0.0的最新版本
packagepublish
如何發(fā)布一個(gè)包?
npmaddUser按照提示輸入賬號密碼,創(chuàng )建一個(gè)npm的賬號,如果已有賬號直接到下一步
npmwhoami查看當前用戶(hù),確認是使用當前用戶(hù)來(lái)發(fā)布包
npmpublish然后就可以直接發(fā)布了,當然這個(gè)時(shí)候可能會(huì )出現各種問(wèn)題,比如你的包和別人的重名了,或者當前的包的版本號已經(jīng)發(fā)布過(guò)了等等
說(shuō)到發(fā)布包,這里在記錄一些開(kāi)發(fā)包的小技巧。
更精準的模塊搜索
到目前為止,npm上已經(jīng)有超過(guò)350000個(gè)模塊了,并且每天還在持續增長(cháng)。盡管有很多非常棒的模塊,但是你還是想避免使用一些不受歡迎的、存在bug的或者無(wú)人維護的模塊。在npmjs和Github上搜索npm模塊是很實(shí)用但這還有一些其它選擇:
npms
npms根據一個(gè)基于項目版本、模塊下載次數、最新更新日期、提交頻率、測試覆蓋率、文檔、貢獻者數量、issues數、star數、forks數和作者在社區的地位的綜合測量分數進(jìn)行模塊排名。
npmDiscover
npmDiscover定位于快速搜索和其它模塊通常一起使用的模塊,如body-parser通常和Express一起使用。
PackagesbyPageRank
PackagesbyPageRank按照模塊的谷歌排名進(jìn)行搜索和排序。
CuratednpmLists
還一個(gè)選擇就是利用別人的搜索結果。當需要一個(gè)健壯的解決方案時(shí),我經(jīng)常會(huì )參考sindresorhus的AwesomeNode.js。
我們在開(kāi)發(fā)包的時(shí)候免不了一些調試,但是這些調試的過(guò)程我們并不想它發(fā)布又想確保當前的功能是可用的,這個(gè)時(shí)候有兩個(gè)辦法能夠幫助我們來(lái)解決這個(gè)問(wèn)題。
npmlink
關(guān)于npmlink的詳細介紹我們可以看官方的網(wǎng)站,這里介紹三種用法:
直接在我們開(kāi)發(fā)包的主目錄下直接使用,這個(gè)時(shí)候,相當于我們在npmglobal的目錄下符號鏈接了當前包。
npmlinkpackage-name,作用相當于把一個(gè)全局安裝的包link到了我們當前目錄下node_module中。
在package.json文件的dependencies中使用如下方式聲明,然后就如同使用一個(gè)已經(jīng)正常發(fā)布的包一樣安裝使用就行。
"dependencies":{
"bar":"file:../foo/bar"
}
NPM-NetworkPowerManager網(wǎng)絡(luò )管理電源控制器,是克萊沃自主研發(fā)、生產(chǎn)制造的具有世界最先進(jìn)技術(shù)水平的新一代網(wǎng)絡(luò )管理電源監控產(chǎn)品。
【使用NPM的技巧講解】相關(guān)文章:
使用NPM的技巧08-23
C語(yǔ)言if語(yǔ)句的使用講解09-18
托福寫(xiě)作素材使用講解07-13
科目三夜間駕車(chē)燈光使用技巧講解08-15
Java中的main()方法的使用講解10-31
導游講解三大技巧09-22
Windows使用技巧10-15
Word經(jīng)典使用技巧09-28
word的使用技巧11-05