欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

帶你深入了解NPM——NPM初學(xué)者指南

前段時(shí)間,我們邀請(qǐng)了我們“城內(nèi)”(葡萄城)資深開(kāi)發(fā)工程師劉濤為大家分享了一次干貨滿滿的關(guān)于Electron線上公開(kāi)課,在課程過(guò)程中有不少同學(xué)對(duì)于NPM的概念和用法有一些疑問(wèn),所以這次我們希望通過(guò)這篇文章來(lái)解答各位同學(xué)的問(wèn)題。另外在介紹的基礎(chǔ)上,我們還會(huì)適當(dāng)?shù)纳钊虢榻B下,如何在npm上發(fā)布第一個(gè)屬于自己的包。那么,讓我們馬上開(kāi)始吧!

創(chuàng)新互聯(lián)公司專注于衢江企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。衢江網(wǎng)站建設(shè)公司,為衢江等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

得益于Node.js的模塊化生態(tài)系統(tǒng),我們基本上可以把NPM認(rèn)為是任何Node項(xiàng)目的基礎(chǔ)組成的一部分。但實(shí)際上,我們甚至可以說(shuō)NPM是Node.js開(kāi)發(fā)人員在開(kāi)發(fā)者社區(qū)中最重要的工具之一。畢竟,他們每天都使用它來(lái)管理他們的項(xiàng)目使用的包。

但是,除了用它安裝軟件包外,大家是否真正深入了解過(guò)NPM呢?因此,我將嘗試介紹該工具的基礎(chǔ)知識(shí),讓您更深入地了解并使用它,而不是僅僅了解npm install而已。

?

包管理

我們都知道你可以使用NPM安裝軟件包,但究竟是什么意思呢?包基本上是包含您需要的代碼的文件夾,您可以在本地或全局安裝它。

本地安裝

本地安裝意味著您實(shí)際上將文件下載到項(xiàng)目的文件夾中。在其中,您將找到一個(gè)您未創(chuàng)建的目錄,稱為“node_modules”。由于這種簡(jiǎn)單的機(jī)制,這個(gè)本地文件夾可能會(huì)變得非常大。

那么究竟這個(gè)文件夾有多大?一張圖來(lái)為你形容:

?帶你深入了解NPM——NPM初學(xué)者指南

?

?

其實(shí)這只是個(gè)玩笑,通常你可以忽略該文件夾,讓Node.js為你處理它。

要執(zhí)行本地安裝,您只需:

$ npm install [package-name]

您可以添加—save后綴,Node會(huì)把包名稱和版本保存到您的package.json?文件中。請(qǐng)記住,這一點(diǎn)很重要(甚至至關(guān)重要),因?yàn)楫?dāng)你作為團(tuán)隊(duì)中的一份子在工作時(shí),你不會(huì)分發(fā),也不會(huì)將node_modules文件夾添加到版本控制系統(tǒng)(無(wú)論是GIT,SVN還是你正在使用的任何版本管理系統(tǒng)),而只需簡(jiǎn)單地分享package.json文件,然后讓你的隊(duì)友執(zhí)行$npm install命令,即可完成包的安裝和更新。這比共享整個(gè)文件夾更快,更容易維護(hù),整個(gè)文件夾可以增長(zhǎng)到包含千兆字節(jié)的數(shù)據(jù)。

以下是一個(gè)package.json文件的結(jié)構(gòu):

{



? "name": "Project name",


? "version": "1.0.0",


? "description": "This is a basic description",


? "main": "index.js",


? "scripts": {


??? "test": "echo \"Error: no test specified\" && exit 1"


? },


? "author": "Fernando Doglio",


? "license": "ISC",


? "dependencies": {


??? "config": "^3.1.0",


??? "express": "^4.17.1",


??? "socket.io": "^2.2.0",


??? "winston": "^3.2.1"


? }

?}

?

您可能會(huì)改變一些,具體取決于您安裝的軟件包,或者您需要的文件的哪些字段(上面的示例中沒(méi)有使用的其他許多字段)。

全局安裝

您還可以全局安裝軟件包,這意味著Node.js將能夠從您可能需要的任何項(xiàng)目中訪問(wèn)它們。這樣做有什么問(wèn)題嗎?全局安裝的包不會(huì)添加到package.json文件中,那么既然不會(huì)添加到package.json中,那么為什么要安裝全局安裝呢?

使用Node.js和NPM能做的一個(gè)很棒的原因之一就是構(gòu)建人們通常稱之為“二進(jìn)制文件”的東西,它們只是可以全局安裝的腳本,因此可以從盒子的任何位置訪問(wèn)。這意味著您可以創(chuàng)建命令行工具并使用NPM來(lái)安裝它們!

例如:ExpressJS(Node.js最受歡迎的Web框架之一)或mocha(非常流行的測(cè)試庫(kù))等軟件包也附帶了可以使用的可執(zhí)行二進(jìn)制文件。例如,mocha要求您在全局和本地安裝它,以便擁有一個(gè)名為“mocha”的CLI工具,并能夠在本地項(xiàng)目上運(yùn)行測(cè)試。

全局包在需要添加到PATH環(huán)境變量的常規(guī)路徑中創(chuàng)建符號(hào)鏈接(或快捷方式)。

NPM的經(jīng)典命令

install命令只是您可以與NPM一起使用的眾多命令之一。事實(shí)上,拋開(kāi)近60種不同的命令(是的,就這么多?。?,我將簡(jiǎn)要介紹一下,NPM還允許你創(chuàng)建自己的自定義命令,以防止內(nèi)置命令對(duì)你不夠用。

以下是最常見(jiàn)的命令列表,取自官方文檔:

  • access:設(shè)置已發(fā)布包的訪問(wèn)級(jí)別,限制或啟用除作者之外的其他人的訪問(wèn)權(quán)限。例:$ npm access public

  • adduser:將用戶帳戶添加到注冊(cè)表(默認(rèn)情況下,注冊(cè)表是npm的注冊(cè)表,但您可以指定自定義帳戶)。例:$ npm addUser當(dāng)提示時(shí),將輸入用戶憑據(jù)(用戶名和密碼)及其電子郵件。

  • audit:對(duì)已安裝的依賴項(xiàng)運(yùn)行安全審核,確保沒(méi)有已知的漏洞影響它們(以及擴(kuò)展,您的項(xiàng)目)。您甚至可以使用該標(biāo)志fix自動(dòng)修復(fù)在審核期間可能發(fā)現(xiàn)的任何問(wèn)題。

  • bin:顯示當(dāng)前項(xiàng)目的NPM bin文件夾。

  • bugs:打開(kāi)新瀏覽器窗口中的錯(cuò)誤列表。關(guān)于這個(gè)命令的有趣的一點(diǎn)是,它試圖猜測(cè)包的當(dāng)前錯(cuò)誤跟蹤器,一旦找到它,它就會(huì)啟動(dòng)一個(gè)新的瀏覽器窗口。

  • cache:雖然開(kāi)發(fā)人員通常不會(huì)使用此命令,但它允許它們清除,驗(yàn)證或向NPM的緩存添加內(nèi)容。在該緩存中,存儲(chǔ)HTTP請(qǐng)求信息和額外包數(shù)據(jù)。通常這是由NPM直接處理并且對(duì)開(kāi)發(fā)人員透明地工作,但是如果你看到一些奇怪的行為,特別是當(dāng)在不同的包和它們的不同版本之間切換時(shí),嘗試清除緩存可能是個(gè)好主意(只是為了開(kāi)啟)安全的一面)。

  • ci:幾乎與npm install用于自動(dòng)化環(huán)境(例如持續(xù)集成過(guò)程)相同。此命令比此命令更嚴(yán)格,install并確保安裝始終是干凈的(如果存在,它會(huì)自動(dòng)刪除node_modules文件夾)。

  • completion:為npm及其子命令啟用Tab Completion。閱讀完整文檔以獲取更多詳細(xì)信息。

  • config:允許您設(shè)置,獲取和編輯NPM的配置選項(xiàng)。

  • dedupe:嘗試通過(guò)遍歷依賴關(guān)系樹(shù)并在盡可能遠(yuǎn)的層次結(jié)構(gòu)中移動(dòng)重復(fù)的條目來(lái)減少依賴關(guān)系的重復(fù)。當(dāng)您的應(yīng)用程序開(kāi)始增長(zhǎng)并包含越來(lái)越多的模塊時(shí),這尤其有用。使用此命令絕對(duì)是可選的,但如果您有很多依賴項(xiàng),它將在安裝期間(在CI / CD環(huán)境中最有用)提供相當(dāng)大的減少。

  • deprecate:在庫(kù)的注冊(cè)表中為特定版本(或版本范圍)添加棄用警告。

  • dist-tag:幫助管理特定包的標(biāo)簽。標(biāo)簽可以充當(dāng)版本別名,以幫助識(shí)別版本而無(wú)需記住數(shù)字。例如,默認(rèn)情況下,最新標(biāo)記用于所有庫(kù)的最后一個(gè)版本,您只需運(yùn)行npm install library-name@latest,NPM將了解要下載的庫(kù)的哪個(gè)版本。

  • docs:就像bug一樣,這個(gè)命令試圖猜測(cè)軟件包的官方文檔在哪里,并在本地瀏覽器中打開(kāi)該URL。

  • doctor:執(zhí)行一組預(yù)定義的檢查,以確保正在執(zhí)行NPM的系統(tǒng)已準(zhǔn)備好最低要求:nodegit命令是可訪問(wèn)和可執(zhí)行的,node_modules文件夾(本地和全局)可由NPM,注冊(cè)表寫(xiě)入或者它的任何自定義版本都是可訪問(wèn)的,最后,NPM緩存存在并且它正在工作。

  • help-search / help:?幫助將顯示給定術(shù)語(yǔ)的文檔頁(yè)面,如果沒(méi)有找到結(jié)果,help-search將對(duì)NPM的markdown幫助文件執(zhí)行全文搜索并顯示相關(guān)結(jié)果列表。

  • hook:允許您配置新的NPM掛鉤,當(dāng)對(duì)感興趣的包進(jìn)行更改時(shí),它會(huì)通知自定義URL。例如,通過(guò)鍵入以下內(nèi)容可以在發(fā)布新版ExpressJS時(shí)收到通知:反過(guò)來(lái),您可以使用該信息執(zhí)行任何您喜歡的操作(例如自動(dòng)更新依賴項(xiàng))。$npm hook add express?http://your-url.com/new-express-version-endpoint

  • init:通過(guò)詢問(wèn)一系列問(wèn)題來(lái)幫助初始化項(xiàng)目,例如名稱,版本,作者等。最后,package.json?使用該信息創(chuàng)建一個(gè)全新的文件。您還可以提供自定義初始化程序,以自定義處理到您的特定堆棧。

  • install:安裝新包。您可以指定程序包的位置及其格式(即,您只能提供一個(gè)名稱,以便在主注冊(cè)表中查找它,或者在下載要安裝的程序包的tarball文件的路徑中)。如果您不希望每次運(yùn)行此命令時(shí)都安裝最新版本,則還可以指定要安裝的版本(對(duì)于自動(dòng)環(huán)境(如CI / CD)尤其有用)。

  • ls:列出當(dāng)前項(xiàng)目的所有已安裝軟件包。您可以列出全局包或本地安裝的包。在任何一種情況下,它不僅會(huì)列出package.json文件中可見(jiàn)的名稱和版本,還會(huì)列出它們的依賴關(guān)系及其版本。

  • outdated:檢查項(xiàng)目中過(guò)時(shí)的包。它將為您提供已安裝軟件包的報(bào)告,其當(dāng)前版本,package.json文件期望的版本以及主注冊(cè)表中發(fā)布的最新版本。

  • owner:允許您管理包所有者。如果您是圖書(shū)館所有者或維護(hù)者,這一點(diǎn)很重要,但如果您僅限于使用包,則不是這樣。

  • ping:?ping當(dāng)前配置的主npm注冊(cè)表并測(cè)試身份驗(yàn)證。這僅在您下載或安裝任何軟件包時(shí)遇到問(wèn)題。它只會(huì)幫助您解決部分問(wèn)題,但重要的是要記住它。

  • prefix:顯示當(dāng)前前綴,換句話說(shuō),顯示最近文件夾中包含package.json文件的路徑。您可以使用該-g標(biāo)志,您將獲得安裝全局包的實(shí)際位置。

  • publish:允許開(kāi)發(fā)人員通過(guò)使用組和組織公開(kāi)或私下與他人共享模塊。

這些是您可以使用的最常見(jiàn)或最有用的NPM命令,但是仍然有超過(guò)10個(gè)額外的命令供您查看,因此我建議您將其文檔添加為書(shū)簽,并做一個(gè)注釋以便返回并仔細(xì)檢查它!

?

如何發(fā)布我自己的包

我要分享關(guān)于NPM知識(shí)的最后一點(diǎn)是與其他人分享你的工作是多么容易。在上一個(gè)列表中,最后一個(gè)命令是發(fā)布命令,它基本上允許你這樣做,但在這里我想給你更多的細(xì)節(jié)。

準(zhǔn)備項(xiàng)目的元數(shù)據(jù)

NPM的注冊(cè)表本質(zhì)上是一個(gè)巨大的包搜索引擎,能夠同時(shí)托管所有內(nèi)容,因此您不必同時(shí)索引它可以在您的工作中獲得的每一點(diǎn)元數(shù)據(jù),以幫助其他人找到您的模塊盡快。

換句話說(shuō),請(qǐng)確保您package.json的設(shè)置正確。因?yàn)檫@些內(nèi)容是吸引您(以及其他人)開(kāi)始研究及分享您的包的主要因素。

  • Name:這是列表中最明顯和最常見(jiàn)的,也是您在創(chuàng)建package.json文件以跟蹤依賴關(guān)系時(shí)可能已經(jīng)設(shè)置的名稱。請(qǐng)注意它的唯一性。

  • Description:描述你的包,以便其他人可以快速了解他們?cè)诎惭b時(shí)會(huì)得到什么。并確保在描述中添加盡可能多的重要關(guān)鍵字,以便搜索引擎知道如何快速找到您。這是嘗試找到您的軟件包的開(kāi)發(fā)人員的需求與引擎首先嘗試正確索引的需求之間的平衡。

  • Tags:這是一個(gè)以逗號(hào)分隔的關(guān)鍵字列表。話雖這么說(shuō),一旦你開(kāi)始發(fā)布包,這些標(biāo)簽就非常重要,因?yàn)樵贜PM的主站點(diǎn)上,它們可以作為你可以輕松瀏覽的類別。因此,如果您沒(méi)有完善你package.json中的標(biāo)簽屬性,其他開(kāi)發(fā)人員將很難通過(guò)分類導(dǎo)航找到你的包。

  • Private:除非您只是自用,否則您需要盡快設(shè)置該屬性為false,否則沒(méi)有人能夠通過(guò)關(guān)鍵字搜索找到您的模塊。

  • Bugs:這確保如果您在某個(gè)地方托管了您的內(nèi)容,例如存在公共問(wèn)題跟蹤的Github,則將此屬性設(shè)置為正確的URL。這將幫助NPM顯示鏈接并在包頁(yè)面上顯示當(dāng)前打開(kāi)的問(wèn)題的數(shù)量。

  • Repository:不是嚴(yán)格要求的屬性,但是如果你添加它,NPM將能夠顯示額外的信息,例如它的鏈接,活動(dòng),協(xié)作者列表,僅舉幾例。

  • Homepage:與前一個(gè)一樣,它將幫助NPM顯示指向此URL的單獨(dú)鏈接(如果存在)。當(dāng)您將代碼放在一個(gè)URL(例如Github倉(cāng)庫(kù))和專用于另一個(gè)URL中的模塊的特定網(wǎng)站時(shí),這尤其重要。

  • License:用于顯示您在項(xiàng)目中設(shè)置的實(shí)際許可證。如果您將其添加為package.json文件的一部分,它將以不同且更突出的方式顯示。您也可以在readme.md上提及它,但在此處添加它將為NPM提供有關(guān)您的項(xiàng)目的額外知識(shí)。

通過(guò)提供我上面提到的元數(shù)據(jù),NPM能夠展示這些數(shù)據(jù)并突出顯示它供開(kāi)發(fā)人員查看。以下示例為Winston的包頁(yè)面:

?帶你深入了解NPM——NPM初學(xué)者指南

?

?

由于其團(tuán)隊(duì)添加了元數(shù)據(jù),添加了多少鏈接以及額外的位和詳細(xì)信息。

一份優(yōu)秀的文檔

這步是可選的,但如果你的包是一個(gè)可供其他開(kāi)發(fā)人員使用的模塊的話,那么我建議你最好提供一份優(yōu)秀的文檔,供他人參考。

因?yàn)槟阏娴牟荒苤竿愕墓ぞ摺吧鲜趾?jiǎn)單、易于理解”。NPM

的目的是為其他人提供一套幫助他們解決問(wèn)題的預(yù)置工具。因此,請(qǐng)盡量豐富你的文檔,吸引更多人來(lái)使用你的工具吧。

正式發(fā)布包

編碼完成后,將有效的package.json放置到你的目錄中并編寫(xiě)盡可能完善的readme.md文件,您就可以發(fā)布了。

要執(zhí)行發(fā)布操作,您必須做兩件事:

  1. 使用npm?CLI?登錄您的NPM帳戶(如果您已經(jīng)有了賬號(hào))。

  2. 發(fā)布您的代碼。

也就是只需兩步,就能簡(jiǎn)單的完成發(fā)布。登陸:

$ npm login

將提示您輸入憑據(jù),一旦您成功登錄,您可以再輸入:
$ npm publish

請(qǐng)?jiān)陧?xiàng)目的文件夾中執(zhí)行此操作,否則第二個(gè)命令將失敗。

另外,請(qǐng)記住,包的名稱將由您的package.json文件中的name屬性給出,而不是來(lái)自文件夾的名稱(通常二者都是相同的,但并這不意味著他倆有什么關(guān)系)。因此,如果您遇到重復(fù)的名稱錯(cuò)誤(考慮到NPM中已經(jīng)有重名的包了),那么您就必須進(jìn)行更改一個(gè)再次發(fā)布了。

結(jié)論

感謝閱讀,我希望到現(xiàn)在為止,你已經(jīng)了解了NPM的復(fù)雜性和美感。它不僅僅是一個(gè)安裝軟件包的簡(jiǎn)單工具,但如果你花時(shí)間檢查文檔,你可以用它做更多的事情。

網(wǎng)頁(yè)標(biāo)題:帶你深入了解NPM——NPM初學(xué)者指南
文章鏈接:http://chinadenli.net/article30/ppcpso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司建站公司、虛擬主機(jī)網(wǎng)站排名、網(wǎng)站營(yíng)銷品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
又大又长又粗又猛国产精品| 国产精品久久久久久久久久久痴汉| 久久综合日韩精品免费观看| 国产一级片内射视频免费播放| 婷婷激情四射在线观看视频| 国产精品一区二区不卡中文| 亚洲美女国产精品久久| 俄罗斯胖女人性生活视频| 日韩综合国产欧美一区| 欧美黑人暴力猛交精品| 日韩一区二区三区久久| 国产精品一区二区视频| 一区二区三区亚洲天堂| 国产一级二级三级观看| 久久精品国产亚洲av麻豆| 少妇激情在线免费观看| 亚洲一区二区三区av高清| 国产欧美日韩在线精品一二区| 国产一级内片内射免费看| 日本办公室三级在线观看| 亚洲中文字幕视频在线播放| 久久精品国产第一区二区三区| 东京热男人的天堂一二三区| 日本人妻中出在线观看| 国产中文字幕久久黄色片| 日韩成人中文字幕在线一区| 亚洲中文字幕人妻av| 2019年国产最新视频| 日本高清一道一二三区四五区| 日本特黄特色大片免费观看 | 成人精品国产亚洲av久久| 中文字幕91在线观看| 欧美成人免费夜夜黄啪啪| 欧美一区二区三区性视频 | 亚洲精品欧美精品日韩精品| 国产成人精品国内自产拍| 欧美一级不卡视频在线观看| 午夜激情视频一区二区| 午夜福利国产精品不卡| 亚洲精品美女三级完整版视频 | 国产精品免费无遮挡不卡视频|