亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語言

使用NPM的技巧講解

時間:2024-09-03 00:21:59 java語言 我要投稿
  • 相關(guān)推薦

使用NPM的技巧講解

  對于一個項(xiàng)目,常用的一些npm簡單命令包含的功能有:初始化一個文件夾(npminit),下載npm模塊(npminstall),創(chuàng)建測試(npmtest)和自定義腳本(npmrun)。但是,進(jìn)一步了解一些npm的使用技巧可以徹底改變你的日常開發(fā)任務(wù)。今天百分網(wǎng)小編為大家整理的使用NPM的技巧講解,僅供學(xué)習(xí)參考,歡迎大家閱讀瀏覽!

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

  [url=500]500[/url]

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

  npmrc

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

  ~/.npmrc

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

  /path/to/npm/npmrc

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

  ./.npmrc

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

  npmrc對我們來說十分有用,我們可以配置例如username、registry、email等信息。eg:

  save=true

  save-exact=true

  email=wfsovereign@outlook.com

  username=wfsovereign

  registry=httPS://registry.npm.taobao.org

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

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

  package.json

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

  {

  "name":"xxx",

  "version":0.0.0

  }

  我們可以通過npminit指令初始化創(chuàng)建一個package.json文件,

  [url=500]500[/url]

  下面分屬性介紹

  scripts

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

  [url=406]406[/url]

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

  [url=404]404[/url]

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

  main

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

  file

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

  package.json

  README

  CHANGES/CHANGELOG/HISTORY

  LICENSE/LICENCE

  NOTICE

  Thefileinthe“main”field

  keywords

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

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

  semanticversion

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

  npmsemver

  Gravatarssemver

  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的最新版本

  packagepublish

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

  npmaddUser按照提示輸入賬號密碼,創(chuàng)建一個npm的賬號,如果已有賬號直接到下一步

  npmwhoami查看當(dāng)前用戶,確認(rèn)是使用當(dāng)前用戶來發(fā)布包

  npmpublish然后就可以直接發(fā)布了,當(dāng)然這個時候可能會出現(xiàn)各種問題,比如你的包和別人的重名了,或者當(dāng)前的包的版本號已經(jīng)發(fā)布過了等等

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

  更精準(zhǔn)的模塊搜索

  到目前為止,npm上已經(jīng)有超過350000個模塊了,并且每天還在持續(xù)增長。盡管有很多非常棒的模塊,但是你還是想避免使用一些不受歡迎的、存在bug的或者無人維護(hù)的模塊。在npmjs和Github上搜索npm模塊是很實(shí)用但這還有一些其它選擇:

  npms

  npms根據(jù)一個基于項(xiàng)目版本、模塊下載次數(shù)、最新更新日期、提交頻率、測試覆蓋率、文檔、貢獻(xiàn)者數(shù)量、issues數(shù)、star數(shù)、forks數(shù)和作者在社區(qū)的地位的綜合測量分?jǐn)?shù)進(jìn)行模塊排名。

  npmDiscover

  npmDiscover定位于快速搜索和其它模塊通常一起使用的模塊,如body-parser通常和Express一起使用。

  PackagesbyPageRank

  PackagesbyPageRank按照模塊的谷歌排名進(jìn)行搜索和排序。

  CuratednpmLists

  還一個選擇就是利用別人的搜索結(jié)果。當(dāng)需要一個健壯的解決方案時,我經(jīng)常會參考sindresorhus的AwesomeNode.js。

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

  npmlink

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

  直接在我們開發(fā)包的主目錄下直接使用,這個時候,相當(dāng)于我們在npmglobal的目錄下符號鏈接了當(dāng)前包。

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

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

  "dependencies":{

  "bar":"file:../foo/bar"

  }

  NPM-NetworkPowerManager網(wǎng)絡(luò)管理電源控制器,是克萊沃自主研發(fā)、生產(chǎn)制造的具有世界最先進(jìn)技術(shù)水平的新一代網(wǎng)絡(luò)管理電源監(jiān)控產(chǎn)品。

【使用NPM的技巧講解】相關(guān)文章:

使用NPM的技巧08-23

C語言if語句的使用講解09-18

托福寫作素材使用講解07-13

科目三夜間駕車燈光使用技巧講解08-15

Java中的main()方法的使用講解10-31

科目二考試技巧講解08-07

導(dǎo)游講解三大技巧09-22

新手開車的起步技巧講解06-20

word的使用技巧11-05

SlightPHP的使用技巧08-22