成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

NPM使用技巧

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

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

NPM使用技巧

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

npmrc

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

  1. ~/.npmrc 

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

  1. /path/to/npm/npmrc 

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

  1. ./.npmrc 

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

npmrc對我們來說十分有用,我們可以配置例如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最讓人頭疼的問題之一就是版本號了,這里配置了save和save-exact屬性,作用是讓我們 npm install 指令安裝的依賴自動保存在 package.json 文件的 dependencies 中并且讓版本號固定。

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

package.json

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

 

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

我們可以通過 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命令縮寫,通過這些命令我們可以方便的啟動項(xiàng)目、進(jìn)行測試或者拿到一些鉤子來做某些指令前預(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 會得到如下輸出:

 

  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 

通過如上實(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)然一下文件是始終會被包含進(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 指定了在庫中搜索時(shí)能夠被哪些關(guān)鍵字搜索到,所以一般這個(gè)會多寫一些項(xiàng)目相關(guān)的詞在這里,這是一個(gè)字符串的數(shù)組。

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

semantic version

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

 

  1. npm semver  
  2. Gravatars semver 

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

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

lodash: 4.7.0 會安裝準(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 按照提示輸入賬號密碼,創(chuàng)建一個(gè)npm的賬號,如果已有賬號直接到下一步
  2. npm whoami 查看當(dāng)前用戶,確認(rèn)是使用當(dāng)前用戶來發(fā)布包
  3. npm publish 然后就可以直接發(fā)布了,當(dāng)然這個(gè)時(shí)候可能會出現(xiàn)各種問題,比如你的包和別人的重名了,或者當(dāng)前的包的版本號已經(jīng)發(fā)布過了等等

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

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

  1. npm link 

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

直接在我們開發(fā)包的主目錄下直接使用,這個(gè)時(shí)候,相當(dāng)于我們在npm global的目錄下符號鏈接了當(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é)任編輯:未麗燕 來源: 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

2009-09-04 10:45:18

MyEclipse使用

2011-04-01 10:53:43

2011-01-19 14:39:59

Qmail技巧

2011-01-21 14:30:02

Thunderbird技巧

2009-12-25 10:51:45

使用ADO

2017-04-27 20:30:33

Android動畫技巧

2010-05-18 18:51:02

MySQL SELEC

2011-03-22 14:58:08

Nagios

2010-01-28 13:12:47

Android使用An

2009-09-25 11:14:16

Hibernate批量

2010-05-18 13:52:49

MySQL selec

2010-01-25 10:46:29

Android Spi

2009-12-02 13:53:12

PHP使用技巧

2009-12-04 10:19:11

PHP hack

2009-12-24 09:38:27

WPF用戶線程

2010-01-25 18:22:33

Android使用XM

2021-12-16 10:53:23

shell命令腳本
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产一区二区在线91 | 正在播放国产精品 | 欧美精品网站 | 在线婷婷| 久久久久久亚洲精品不卡 | 国产高清视频 | 国产一区二区三区在线看 | 成人a网 | 中文字幕在线精品 | 久久综合伊人一区二区三 | 国产精品国产三级国产aⅴ中文 | 成人av在线播放 | 亚洲深夜福利 | 国产区在线观看 | 色啪网| 欧美日韩高清 | 伊人精品在线视频 | 久久国产精品色av免费观看 | 欧美一级小视频 | 日韩1区 | 亚洲国产精品va在线看黑人 | 成年人免费看的视频 | 免费国产一区二区视频 | 一区二区三区四区av | 国产一区二区激情视频 | 成人在线视频免费观看 | 亚洲一区久久 | 久久精品毛片 | 欧美国产日韩在线 | 波多野结衣在线观看一区二区三区 | 精品不卡 | 亚洲高清久久 | 欧美三级电影在线播放 | 懂色tv | 色综合欧美 | 亚洲午夜三级 | 色婷综合网 | 国产美女特级嫩嫩嫩bbb片 | 精品国产乱码久久久久久图片 | 亚洲成人精品久久久 | 久久成人免费视频 |