NPM

来源:http://www.cnblogs.com/xiaohuochai/archive/2017/05/23/6882911.html
-Advertisement-
Play Games

[1]基本操作 [2]安裝依賴包 [3]查看及修改 [4]發佈依賴包 ...


前面的話

  CommonJS包規範是理論,NPM是其中的一種實踐。對於Node而言,NPM幫助完成了第三方模塊的發佈、安裝和依賴等。藉助NPM,Node與第三方模塊之間形成了很好的一個生態系統。藉助NPM,可以幫助用戶快速安裝和管理依賴包。除此之外,NPM還有一些巧妙的用法。下麵將詳細介紹NPM

 

基本操作

  npm不需要單獨安裝。在安裝Node的時候,會連帶一起安裝npm

  [註意]關於nodejs的安裝詳細步驟移步至此

【版本】

  執行npm –v命令可以查看當前NPM的版本

【升級】

   不過由於nodejs更新速度要慢於 npm ,因此在一般情況下要升級npm到最新版本

npm install npm -g

【幫助】

  在不熟悉NPM的命令之前,可以直接執行npm命令或npm help命令查看幫助引導說明

  其中,npm help <command>可以查看具體的命令說明

  通過npm -l命令可以查看各個命令的簡單用法

 

安裝依賴包

  安裝依賴包是NPM最常見的用法,包括全局安裝和本地安裝兩種

【本地安裝】

  本地安裝的執行語句是npm install express。執行該命令後,NPM會在當前目錄下創建node_modules目錄,然後在node_modules目錄下創建express目錄,接著將包解壓到這個目錄下

  [註意]必須保證從當前的目錄開始一直到根目錄都沒有node_modules或package.json,否則,npm可能會把模塊安裝在有node_modules或package.json的那層目錄

  安裝好依賴包後,直接在代碼中調用require('express');即可引入該包。require()方法在做路徑分析的時候會通過模塊路徑查找到express所在的位置。模塊引入和包的安裝這兩個步驟是相輔相承的

【全局安裝】

  全局模式並不是將一個模塊包安裝為一個全局包的意思,它並不意味著可以從任何地方通過require()來引用到它,它的主要目的是命令行工具的使用。如果包中含有命令行工具,那麼需要執行npm install express –g命令進行全局模式安裝

  實際上,-g是將一個包安裝為全局可用的可執行命令。它根據包描述文件中的bin欄位配置,將實際腳本鏈接到與Node可執行文件相同的路徑下

"bin": {
    "express": "./bin/express"
}

  通過命令npm root -g可以查看全局安裝目錄

【其他安裝】

  對於一些沒有發佈到NPM上的包,或是因為網路原因導致無法直接安裝的包,可以通過將包下載到本地,然後以本地安裝。本地安裝只需為NPM指明package.json文件所在的位置即可:它可以是一個包含package.json的存檔文件,也可以是一個URL地址,也可以是一個目錄下有package.json文件的目錄位置。具體參數如下:

npm install <tarball file>
npm install <tarball url>    
npm install <folder>

  如果不能通過官方源安裝,可以通過鏡像源安裝。在執行命令時,添加--registry=http://registry.url即可,示例如下:

npm install underscore --registry=http://registry.url

【版本】

  如何安裝不同版本的依賴包呢?

  預設地,使用npm install express命令安裝的是最新版本的express

npm install express

  如果要安裝指定版本,如版本3.9.0,則使用@標誌符

npm install [email protected]

  如果項目依賴了很多package,一個一個地安裝那將是個體力活。我們可以將項目依賴的包都在package.json這個文件里聲明,然後npm install一行命令搞定

npm install

【參數】

  在安裝依賴包時,有一些參數需要註意。比如使用-g參數時,表示該依賴包為全局安裝

  參數-S, --save表示安裝包信息將加入到dependencies(生產階段的依賴)

npm install express --save 或 npm install express -S

  package.json 文件的 dependencies 欄位:

"dependencies": {
    "express": "^3.9.0"
}

  參數-D, --save-dev表示安裝包信息將加入到devDependencies(開發階段的依賴),所以開發階段一般使用它

npm install express --save-dev 或 npm install express -D

  package.json 文件的 devDependencies欄位:

"devDependencies": {
    "express": "^3.9.0"
}

 

查看及修改

  通過命令npm ls可以查看到底安裝了哪些包,如果使用npm ls -g可以查看全局安裝的依賴包

  通過命令npm ls <pkgname> 可以查看特定依賴包的信息,但輸出的信息比較有限,只有安裝目錄、版本,

  如果要查看更詳細信息,可以使用命令npm info <pkgname> 

npm info express

  通過命令npm outdated <pkgname>可以檢查模塊是否過時

  通過命令npm update <pkgname>可以用來更新模塊(不可行)

npm update express

  但是,經過測試該命令並不生效,電腦系統為window10

  使用和安裝模塊相同的命令,可以更新

npm install express

  使用以上命令後,express版本由3.9.0升級到4.15.3

  通過命令npm uninstall <pkgname>可以用來解析模塊

npm uninstall express

 

發佈依賴包

  為了將整個NPM的流程串聯起來,下麵演示如何編寫一個包,將其發佈到NPM倉庫,並通過NPM安裝回本地

【編寫模塊】

  模塊的內容我們儘量保持簡單,以sayhello作為例子,相關代碼如下:

exports.sayHello = function () {
    return 'Hello, world.';
};

  將這段代碼保存為hello.js即可

【初始化包描述文件】

  package.json文件的內容儘管相對較多,但是實際發佈一個包時並不需要一行一行編寫。NPM提供的npm init命令會幫助你生成package.json文件,具體如下所示:

  NPM通過提問式的交互逐個填入選項,最後生成預覽的包描述文件。如果你滿意,輸入yes,此時會在目錄下得到package.json文件 

【註冊包倉庫賬號】

  為了維護包,NPM必須要使用倉庫賬號才允許將包發佈到倉庫中。註冊賬號的命令是npm adduser。這也是一個提問式的交互過程,按順序進行即可:

【上傳包】

  上傳包的命令是npm publish <folder>。在剛剛創建的package.json文件所在的目錄下,執行 npm publish .開始上傳包,相關代碼如下:

  在這個過程中,NPM會將目錄打包為一個存檔文件,然後上傳到官方源倉庫中

【安裝包】

  為了體驗和測試自己上傳的包,可以換目錄或者清空當前目錄執行npm install hello_test_match安裝它:

  於是,自己創建的包就下載下來了


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 實現思路 1.在一定的頻率下在頁面中生成一定數目的雪花從上往下飄落; 2.在指定的時間內飄落後移除頁面; 3.可設置雪花的大小,在一定範圍內隨機雪花大小; 4.什麼時間後清除生成雪花,停止函數。 js代碼 調用方式: 參數解釋: ...
  • Ajax-jqueryAjax 今天內容: 1、json數據結構(重點) 2、jquery的ajax操作(重點) 3、jquery的插件使用 一、json數據結構 1、什麼是json JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於ECMAScri ...
  • 關於jquery和dom的一些小小小的總結,特別簡單的小結 1.轉換 var JqueryObj=$(DomObj) var DomObj=JqueryObj.get([index]) 2.創建元素 $('<div>hello</div>') 設置屬性 3.檢查元素 $('xxx').length得 ...
  • 自己用 art-template 有些年頭了,最近在培養團隊學習 art-template 使用,發現有一個痛點比較難解決。 比如有一個模版,我們可以直接寫在頁面中,像這樣: 但如果這是個公用的模版,在很多頁面需要用到,那就不能直接寫在頁面中了,不然就得複製很多份了,那就只能寫到 js 文件里,做為 ...
  • 效果圖如下: HTML 文本源碼: base.js 源碼 1 /*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license 2 //@ sourceMappingURL=jquery.min.map 3 ...
  • 什麼是雪碧圖雪碧圖就是CSS Sprite,也有人叫它CSS精靈,是一種CSS圖像合併技術,就是把多張小圖標合併到一張圖片上,然後用css的background-position來顯示需要顯示的部分。 為什麼要用雪碧圖 可以減少載入網頁圖片時對伺服器的請求次數,提高頁面的載入速度,解決IE6滑鼠滑過 ...
  • 在javascript中toggle()為連續點擊事件,當裡面含有多個function(){}函數時,每次點擊依次執行裡面的function的函數,直至最後一個.隨後每次點擊都重覆對這幾個函數的輪番調用,toggle的語法如下 toggle(fn1,fn2,fn3·····fnN); 但當toggl ...
  • Node.js是基於Chrome JavaScript運行時建立的一個平臺,實際上它是對Google Chrome V8引擎進行了封裝,它主要用於創建快速的、可擴展的網路應用。 Node.js採用事件驅動和非阻塞I/O模型,使其變得輕量和高效,非常適合構建運行在分散式設備的數據密集型的實時應用。 如 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...