自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

NPM使用技巧

開發(fā) 后端
如果你是一個(gè)JavaScript系的開發(fā)者,一定不會(huì)陌生NPM,它既是一個(gè)平臺(tái),也是一個(gè)工具。在這個(gè)平臺(tái)上,我們能夠使用其他開發(fā)者提供的功能代碼,當(dāng)然我們也能將我們自己代碼提交到這里分享給世界上的開發(fā)者。

如果你是一個(gè)JavaScript系的開發(fā)者,一定不會(huì)陌生NPM,它既是一個(gè)平臺(tái),也是一個(gè)工具。在這個(gè)平臺(tái)上,我們能夠使用其他開發(fā)者提供的功能代碼,當(dāng)然我們也能將我們自己代碼提交到這里分享給世界上的開發(fā)者。

NPM使用技巧

以下記錄一些NPM作為工具的一些使用技巧。

npmrc

.npmrc 做為npm的配置文件,它可以定義在多個(gè)地方。

  1. ~/.npmrc 

用戶根目錄,根目錄內(nèi)所有的npm指令都會(huì)查詢到該配置

  1. /path/to/npm/npmrc 

npm內(nèi)建配置文件

  1. ./.npmrc 

當(dāng)前項(xiàng)目根目錄,用于配置特定于當(dāng)前項(xiàng)目的配置

npmrc對(duì)我們來(lái)說(shuō)十分有用,我們可以配置例如username、registry、email等信息。 eg:

 

  1. save=true  
  2. save-exact=true  
  3. email=wfsovereign@outlook.com  
  4. username=wfsovereign  
  5. registry=https://registry.npm.taobao.org 

npm最讓人頭疼的問(wèn)題之一就是版本號(hào)了,這里配置了save和save-exact屬性,作用是讓我們 npm install 指令安裝的依賴自動(dòng)保存在 package.json 文件的 dependencies 中并且讓版本號(hào)固定。

一些國(guó)內(nèi)的服務(wù)器在拉取某些被墻的包的經(jīng)常會(huì)失敗或者速度很慢,這個(gè)時(shí)候我們可以試試 淘寶NPM鏡像 (這是一個(gè)完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務(wù)同步)。官方還定制了 cnpm ,這個(gè)看具體情況而定了。比如,我曾經(jīng)的一個(gè)項(xiàng)目,部署在微軟的Asure上面,這個(gè)服務(wù)器感覺(jué)被墻的厲害,用官方的npm庫(kù)下phantomjs的zip文件運(yùn)氣好的話也得下個(gè)兩三次才能下下來(lái),后來(lái)為了解決這個(gè)問(wèn)題嘗試了淘寶鏡像,不過(guò)問(wèn)題就出在用了cnpm,用cnpm拉的包在本地編譯不了,后來(lái)?yè)Q回npm,使用淘寶鏡像,一切正常了~

package.json

package.json 是項(xiàng)目的配置管理文件,它定義了這個(gè)項(xiàng)目所需要的各個(gè)依賴模塊以及項(xiàng)目的配置信息(名字,版本號(hào),許可證等)。一個(gè)最基本的 package.json 必須有 name 和 version ,差不多長(zhǎng)這樣:

 

  1.  
  2. "name""xxx" 
  3. "version": 0.0.0  

我們可以通過(guò) npm init 指令初始化創(chuàng)建一個(gè)package.json文件,

 

  1.  
  2. "name""test" 
  3. "version""1.0.0" 
  4. "description""" 
  5. "main""index.js" 
  6. "scripts": {  
  7. "test""echo \"Error: no test specified\" && exit 1"  
  8. },  
  9. "author""wfsovereign" 
  10. "license""ISC" 
  11. "devDependencies": {  
  12. },  
  13. "dependencies": {  
  14.  

下面分屬性介紹

scripts

scripts 定義了一些腳本指令的npm命令縮寫,通過(guò)這些命令我們可以方便的啟動(dòng)項(xiàng)目、進(jìn)行測(cè)試或者拿到一些鉤子來(lái)做某些指令前預(yù)先做的事,

 

  1. "scripts": {  
  2. "pretest""echo \"this is pre test\" ", 
  3. "test""echo \"Error: no test specified\"" 
  4. "posttest""echo \"this is post test\""  

當(dāng)我們執(zhí)行 npm test 會(huì)得到如下輸出:

 

  1. this is pre test  
  2. test@1.0.0 test  
  3. echo “Error: no test specified”  
  4. Error: no test specified  
  5. test@1.0.0 posttest  
  6. echo “this is post test”  
  7. this is post test 

通過(guò)如上實(shí)驗(yàn),我們能夠知道, prexx 指令是一個(gè)預(yù)執(zhí)行指令, postxx 是一個(gè)后置指令,他倆都和 xx 指令強(qiáng)相關(guān)。

main

main 指定項(xiàng)目加載的入口文件,默認(rèn)是根目錄的inde.js

file

file 是一個(gè)字符串的數(shù)組,指定我們發(fā)布的包應(yīng)該包含當(dāng)前目錄的哪些文件,這個(gè)在我們發(fā)布包的時(shí)候很有用,因?yàn)殚_發(fā)包里面的文件夾不是都需要發(fā)布出去的。當(dāng)然一下文件是始終會(huì)被包含進(jìn)去的,不論我們是否設(shè)置,

 

  1. package.json  
  2. README  
  3. CHANGES / CHANGELOG / HISTORY  
  4. LICENSE / LICENCE  
  5. NOTICE  
  6. The file in the “main” field 

keywords

keywords 指定了在庫(kù)中搜索時(shí)能夠被哪些關(guān)鍵字搜索到,所以一般這個(gè)會(huì)多寫一些項(xiàng)目相關(guān)的詞在這里,這是一個(gè)字符串的數(shù)組。

其余屬性詳情可以查詢 官方文檔

semantic version

關(guān)于語(yǔ)義化的版本號(hào),這里不多講,放一些preference

 

  1. npm semver  
  2. Gravatars semver 

Nodejs項(xiàng)目中最常見(jiàn)的一些版本標(biāo)識(shí)( *, ~, ^ ),經(jīng)常忘了它們的含義,這里記錄一下:

  • * 任意版本
  • 1.0.0 安裝指定的1.0.0版本

lodash: 4.7.0 會(huì)安裝準(zhǔn)確的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的***版本

package publish

如何發(fā)布一個(gè)包?

  1. npm addUser 按照提示輸入賬號(hào)密碼,創(chuàng)建一個(gè)npm的賬號(hào),如果已有賬號(hào)直接到下一步
  2. npm whoami 查看當(dāng)前用戶,確認(rèn)是使用當(dāng)前用戶來(lái)發(fā)布包
  3. npm publish 然后就可以直接發(fā)布了,當(dāng)然這個(gè)時(shí)候可能會(huì)出現(xiàn)各種問(wèn)題,比如你的包和別人的重名了,或者當(dāng)前的包的版本號(hào)已經(jīng)發(fā)布過(guò)了等等

說(shuō)到發(fā)布包,這里在記錄一些開發(fā)包的小技巧。

我們?cè)陂_發(fā)包的時(shí)候免不了一些調(diào)試,但是這些調(diào)試的過(guò)程我們并不想它發(fā)布又想確保當(dāng)前的功能是可用的,這個(gè)時(shí)候有兩個(gè)辦法能夠幫助我們來(lái)解決這個(gè)問(wèn)題。

  1. npm link 

關(guān)于 npm link 的詳細(xì)介紹我們可以看 官網(wǎng) ,這里介紹三種用法:

直接在我們開發(fā)包的主目錄下直接使用,這個(gè)時(shí)候,相當(dāng)于我們?cè)趎pm global的目錄下符號(hào)鏈接了當(dāng)前包。

npm link package-name , 作用相當(dāng)于把一個(gè)全局安裝的包link到了我們當(dāng)前目錄下node_module中。

在 package.json 文件的dependencies中使用如下方式聲明,然后就如同使用一個(gè)已經(jīng)正常發(fā)布的包一樣安裝使用就行。

 

  1. "dependencies": {  
  2. "bar""file:../foo/bar"  
責(zé)任編輯:未麗燕 來(lái)源: wfsoverign'notes
相關(guān)推薦

2018-05-07 13:42:52

LinuxnpmNodeJS

2022-09-20 11:58:27

NpmNode.js

2009-06-18 15:33:40

2011-01-19 14:39:59

Qmail技巧

2011-04-01 10:53:43

2009-09-04 10:45:18

MyEclipse使用

2011-01-21 14:30:02

Thunderbird技巧

2009-12-25 10:51:45

使用ADO

2017-04-27 20:30:33

Android動(dòng)畫技巧

2010-05-18 18:51:02

MySQL SELEC

2011-03-22 14:58:08

Nagios

2010-01-25 10:46:29

Android Spi

2010-05-18 13:52:49

MySQL selec

2010-01-28 13:12:47

Android使用An

2009-09-25 11:14:16

Hibernate批量

2010-08-31 13:14:41

CSSoverflow

2021-12-16 10:53:23

shell命令腳本

2009-12-24 09:38:27

WPF用戶線程

2010-01-25 18:22:33

Android使用XM

2017-03-13 16:48:05

Git技巧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)