NPM使用介紹

来源:https://www.cnblogs.com/chenyingying0/archive/2020/03/09/12447232.html
-Advertisement-
Play Games

NPM是隨同NodeJS一起安裝的包管理工具 允許用戶從NPM伺服器下載別人編寫的第三方包到本地使用 允許用戶從NPM伺服器下載並安裝別人編寫的命令行程式到本地使用 允許用戶將自己編寫的包或命令行程式上傳到NPM伺服器供別人使用 由於新版的nodejs已經集成了npm,所以npm也一併安裝好了。同樣 ...


NPM是隨同NodeJS一起安裝的包管理工具

允許用戶從NPM伺服器下載別人編寫的第三方包到本地使用

允許用戶從NPM伺服器下載並安裝別人編寫的命令行程式到本地使用

允許用戶將自己編寫的包或命令行程式上傳到NPM伺服器供別人使用

 

由於新版的nodejs已經集成了npm,所以npm也一併安裝好了。同樣可以通過輸入 "npm -v" 來測試是否成功安裝

 

 

 

如果你安裝的是舊版本的 npm,可以很容易得通過 npm 命令來升級

sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm

 

Window 系統使用以下命令

npm install npm -g

 

使用淘寶鏡像的命令

npm install -g cnpm --registry=https://registry.npm.taobao.org

 

npm 安裝 Node.js 模塊語法格式

npm install <Module Name>

如果淘寶鏡像就是cnpm

 

使用 npm 命令安裝常用的 Node.js web框架模塊 express

npm install express

 

安裝好之後,express 包就放在了工程目錄下的 node_modules 目錄中,因此在代碼中只需要通過 require('express') 的方式就好,無需指定第三方包路徑。

var express = require('express');

 

npm 的包安裝分為本地安裝(local)、全局安裝(global)兩種

從敲的命令行來看,差別隻是有沒有-g而已

npm install express          # 本地安裝
npm install express -g   # 全局安裝

 

如果出現以下錯誤

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

 

解決辦法為

npm config set proxy null

 

本地安裝:

  • 1. 將安裝包放在 ./node_modules 下(運行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執行 npm 命令的目錄下生成 node_modules 目錄。
  • 2. 可以通過 require() 來引入本地安裝的包。

 

全局安裝:

  • 1. 將安裝包放在 /usr/local 下或者你 node 的安裝目錄。
  • 2. 可以直接在命令行里使用。

 

使用全局方式安裝 express

npm install express -g

 

安裝過程輸出如下內容,第一行輸出了模塊的版本號及安裝位置

 

 

可以使用以下命令來查看所有全局安裝的模塊

npm list -g

 

 

如果要查看某個模塊的版本號,可以使用命令如下

npm list grunt

 

 

package.json 位於模塊的目錄下,用於定義包的屬性

package.json屬性說明:

  • name - 包名。

  • version - 包的版本號。

  • description - 包的描述。

  • homepage - 包的官網 url 。

  • author - 包的作者姓名。

  • contributors - 包的其他貢獻者姓名。

  • dependencies - 依賴包列表。如果依賴包沒有安裝,npm 會自動將依賴包安裝在 node_module 目錄下。

  • repository - 包代碼存放的地方的類型,可以是 git 或 svn,git 可在 Github 上。

  • main - main 欄位指定了程式的主入口文件,require('moduleName') 就會載入這個文件。這個欄位的預設值是模塊根目錄下麵的 index.js。

  • keywords - 關鍵字

 

可以使用以下命令來卸載 Node.js 模塊

npm uninstall express

 

卸載後,你可以到 /node_modules/ 目錄下查看包是否還存在,或者使用以下命令查看

npm ls

 

可以使用以下命令更新模塊

npm update express

 

使用以下來搜索模塊:

npm search express

 

創建模塊,package.json 文件是必不可少的

我們可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的結果

npm init

需要根據你自己的情況輸入。在最後輸入 "yes" 後會生成 package.json 文件。

接下來我們可以使用以下命令在 npm 資源庫中註冊用戶(使用郵箱註冊)

npm adduser
Username: mcmohd
Password:
Email: (this IS public) [email protected]

 

用以下命令來發佈模塊

npm publish

 

版本號更新原則:

語義版本號分為X.Y.Z三位,分別代表主版本號、次版本號和補丁版本號。當代碼變更時,版本號按以下原則更新。

  • 如果只是修複bug,需要更新Z位。
  • 如果是新增了功能,但是向下相容,需要更新Y位。
  • 如果有大變動,向下不相容,需要更新X位。

 

npm常用命令:

  • NPM提供了很多命令,例如installpublish,使用npm help可查看所有命令。

  • 使用npm help <command>可查看某條命令的詳細幫助,例如npm help install

  • package.json所在目錄下使用npm install . -g可先在本地安裝當前命令行程式,可用於發佈前的本地測試。

  • 使用npm update <package>可以把當前目錄下node_modules子目錄裡邊的對應模塊更新至最新版本。

  • 使用npm update <package> -g可以把全局安裝的對應命令行程式更新至最新版。

  • 使用npm cache clear可以清空NPM本地緩存,用於對付使用相同版本號發佈新版本代碼的人。

  • 使用npm unpublish <package>@<version>可以撤銷發佈自己發佈過的某個版本代碼。

 

大家都知道國內直接使用 npm 的官方鏡像是非常慢的,這裡推薦使用淘寶 NPM 鏡像。

淘寶 NPM 鏡像是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證儘量與官方服務同步。

你可以使用淘寶定製的 cnpm (gzip 壓縮支持) 命令行工具代替預設的 npm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

這樣就可以使用 cnpm 命令來安裝模塊了:

cnpm install [name]

 

如果你遇到了使用 npm 安 裝node_modules 總是提示報錯:報錯: npm resource busy or locked.....

可以先刪除以前安裝的 node_modules :

npm cache clean
npm install

 


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

-Advertisement-
Play Games
更多相關文章
  • 理解 隨著前端業務的發展, 我們一般在寫一個較為大型的 項目時候,會使用到 ,來根據指定的 或者 來進行內容的分發,可以達到不像服務端發送請求,就完成頁面內容的切換,能夠減少像伺服器發送的請求,讓用戶進行頁面跳轉時候能夠更快,體驗更好 疑問 在初學 的時候,一般人都會有一個印象, 以及 都是 原生自 ...
  • Vue 項目開發過程中,經常用到插件,比如原生插件 `vue-router`、`vuex`,還有 `element-ui` 提供的 `notify`、`message` 等等。這些插件讓我們的開發變得更簡單更高效。那麼 Vue 插件是怎麼開發的呢?如何自己開發一個 Vue 插件然後打包發佈到npm? ...
  • JavaScript 語言自身只有字元串數據類型,沒有二進位數據類型。 但在處理像TCP流或文件流時,必須使用到二進位數據。 因此在 Node.js中,定義了一個 Buffer 類,該類用來創建一個專門存放二進位數據的緩存區。 在v6.0之前創建Buffer對象直接使用new Buffer()構造函 ...
  • events 模塊只提供了一個對象: events.EventEmitter。EventEmitter 的核心就是事件觸發與事件監聽器功能的封裝。 你可以通過require("events");來訪問該模塊。 //引入events模塊 var events=require("events"); // ...
  • 2020還能轉行學web前端開發嗎?這是很多人在網路上搜索的問題。及其原因,還是因為目前網路上充斥著前端飽和的說法,這讓不少人懷疑還能不能轉行web前端,目前程式員行業前景很好,而web前端的前景也不差。 不否認初級前端程式員供給泛濫,待遇惡化,發展遇冷。但是當你堅持到中高級web前端工程師時,就會 ...
  • Node.js 是單進程單線程應用程式,但是因為 V8 引擎提供的非同步執行回調介面,通過這些介面可以處理大量的併發,所以性能非常高。 Node.js 幾乎每一個 API 都是支持回調函數的。 Node.js 單線程類似進入一個while(true)的事件迴圈,直到沒有事件觀察者退出,每個非同步事件都生 ...
  • Node.js 非同步編程的直接體現就是回調。 回調函數在完成任務後就會被調用,Node 使用了大量的回調函數,Node 所有 API 都支持回調函數。 例如,我們可以一邊讀取文件,一邊執行其他命令,在文件讀取完成後,我們將文件內容作為回調函數的參數返回。 這樣在執行代碼時就沒有阻塞或等待文件 I/O ...
  • Node.js REPL(Read Eval Print Loop:互動式解釋器) 表示一個電腦的環境,類似 Window 系統的終端或 Unix/Linux shell,我們可以在終端中輸入命令,並接收系統的響應。 Node 自帶了互動式解釋器,可以執行以下任務: 讀取 - 讀取用戶輸入,解析輸入 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...