Node.js管理工具npm簡單介紹

1.npm用途說明

我們在寫node.js項目的時候npm工具是避免不的,那么我們如何使用該工具去管理包文具呢?首先我們先介紹npm工具的幾種用途:

  1. 可以從npm服務器下載別人編寫的第三方包到本地使用。
  2. 可以從npm服務器下載并安裝別人編寫的命令行程序到本地使用。
  3. 可以將自己編寫的包或命令行程序上傳到npm服務器供別人使用。

2.npm的安裝及使用

2.1 npm安裝

node.js很早的版本就已經集成了npm工具,如果你安裝好了node.js,那就不用單獨安裝npm。我們通過"npm -v”來查看以下版本:

$ npm -v
6.13.4

如果你想使用新的npm版本,可以使用如下命令來更新:

sudo npm install npm -g # Linux平臺npm install npm -g # windows平臺

你也可以使用國內淘寶鏡像源更新或者下載包:

npm install -g cnpm --registry=https://registry.npmmirror.com

2 npm使用

如果我們要使用npm 命令安裝urllib,我們可以用下邊命令:

npm install urllib      # 本地安裝 
npm install usllib -g   # 全局安裝

2.2.1 本地安裝

將安裝包放在 ./node_modules 下(運行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執行 npm 命令的目錄下生成 node_modules 目錄。

npm install urllib      # 本地安裝 

2.2.2 全局安裝

將安裝包放在 /usr/local 下或者你 node 的安裝目錄。

npm install usllib -g   # 全局安裝

2.2.3 模塊卸載

$ npm uninstall usllib

2.2.4 模塊更新

$ npm update usllib

2.2.5 模塊搜索

$ npm search usllib

2.2.6 模塊創建

創建模塊,package.json 文件是必不可少的。我們可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的結果。

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.See `npm help json` for definitive documentation on these fields
and exactly what they do.Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.Press ^C at any time to quit.
name: (node_modules) runoob                   # 模塊名
version: (1.0.0) 
description: Node.js 測試模塊(www.runoob.com)  # 描述
entry point: (index.js) 
test command: make test
git repository: https://github.com/runoob/runoob.git  # Github 地址
keywords: 
author: 
license: (ISC) 
About to write to ……/node_modules/package.json:      # 生成地址{"name": "runoob","version": "1.0.0","description": "Node.js 測試模塊(www.runoob.com)",……
}Is this ok? (yes) yes

以上的信息,你需要根據你自己的情況輸入。在最后輸入 “yes” 后會生成 package.json 文件。

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

$ npm adduser
Username: myname
Password:
Email: (this IS public) myname@email.com

接下來我們就用以下命令來發布模塊:

$ npm publish

如果你以上的步驟都操作正確,你就可以跟其他模塊一樣使用 npm 來安裝。

2.2.7 模塊創建

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

如果只是修復bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大變動,向下不兼容,需要更新X位。
版本號有了這個保證后,在申明第三方包依賴時,除了可依賴于一個固定版本號外,還可依賴于某個范圍的版本號。例如"argv": "0.0.x"表示依賴于0.0.x系列的最新版argv。

NPM支持的所有版本號范圍指定方式可以查看官方文檔。

2.3 查看安裝信息

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

$ npm list urllib #(在本地項目查看rullib)
root@ /home/kyland/webviz
└── (empty)$ npm list urllib -g  #(在全局查看rullib)
/home/kyland/.nvm/versions/node/v10.19.0/lib
└─┬ cnpm@9.2.0├─┬ npm-request@1.0.0│ └── urllib@2.41.0 ├─┬ npminstall@7.11.1│ └── urllib@3.19.3  deduped└── urllib@3.19.3 
$ npm list -g
.nvm/versions/node/v10.19.0/lib
├─┬ @angular/cli@17.0.1
│ ├─┬ @angular-devkit/architect@0.1700.1
│ │ ├── @angular-devkit/core@17.0.1 deduped
│ │ └─┬ rxjs@7.8.1
│ │   └── tslib@2.6.2
│ ├─┬ @angular-devkit/core@17.0.1
│ │ ├─┬ ajv@8.12.0
│ │ │ ├── fast-deep-equal@3.1.3
│ │ │ ├── json-schema-traverse@1.0.0
│ │ │ ├── require-from-string@2.0.2
│ │ │ └─┬ uri-js@4.4.1
│ │ │   └── punycode@2.3.1
│ │ ├─┬ ajv-formats@2.1.1
│ │ │ └── ajv@8.12.0 deduped
│ │ ├── jsonc-parser@3.2.0 deduped
│ │ ├── picomatch@3.0.1
│ │ ├── rxjs@7.8.1 deduped
│ │ └── source-map@0.7.4
...

2.4 package.json的使用

package.json 位于模塊的目錄下,用于定義包的屬性。接下來讓我們來看下 express 包的 package.json 文件,位于 node_modules/express/package.json 內容:

{"name": "root","private": true,"devDependencies": {"@babel/cli": "^7.1.5","@babel/core": "^7.2.0","@babel/plugin-proposal-class-properties": "^7.2.1","@babel/plugin-proposal-nullish-coalescing-operator": "^7.7.4","@babel/plugin-proposal-object-rest-spread": "^7.2.0",},"scripts": {"bootstrap": "npm install && lerna bootstrap --hoist \"{react,react-dom}\" -- --legacy-peer-deps",},"dependencies": {"dd-trace": "^2.2.0","node-sass": "^4.14.1"}
}

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 - 關鍵字

2.5 npm常用命令

  • npm help 可查看某條命令的詳細幫助,例如npm help install。
  • 在package.json所在目錄下使用npm install . -g可先在本地安裝當前命令行程序,可用于發布前的本地測試。
  • npm update 可以把當前目錄下node_modules子目錄里邊的對應模塊更新至最新版本。
  • npm update -g可以把全局安裝的對應命令行程序更新至最新版。
  • npm cache clear可以清空NPM本地緩存,用于對付使用相同版本號發布新版本代碼的人。
  • npm unpublish @可以撤銷發布自己發布過的某個版本代碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215070.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215070.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215070.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

音樂制作工具 Ableton Live 12中文最新 for Mac

Ableton Live 12 Mac具有直觀的界面和強大的功能&#xff0c;使得音樂制作變得更加簡單和高效。它支持實時錄制、編輯和混音&#xff0c;用戶可以在創作過程中隨時進行修改和調整。此外&#xff0c;該軟件還提供了各種音頻效果、虛擬樂器和采樣器&#xff0c;使用戶可以創建出更…

Springboot入門篇

一、概述 Spring是一個開源框架&#xff0c;2003 年興起的一個輕量級的Java 開發框架&#xff0c;作者Rod Johnson 。Spring是為了解決企業級應用開發的復雜性而創建的&#xff0c;簡化開發。 1.1對比 對比一下 Spring 程序和 SpringBoot 程序。如下圖 坐標 Spring 程序中的…

深入理解模板引擎:解鎖 Web 開發的新境界(下)

&#x1f90d; 前端開發工程師&#xff08;主業&#xff09;、技術博主&#xff08;副業&#xff09;、已過CET6 &#x1f368; 阿珊和她的貓_CSDN個人主頁 &#x1f560; 牛客高級專題作者、在牛客打造高質量專欄《前端面試必備》 &#x1f35a; 藍橋云課簽約作者、已在藍橋云…

TrustZone之完成器:外圍設備和內存

到目前為止,在本指南中,我們集中討論了處理器,但TrustZone遠不止是一組處理器功能。要充分利用TrustZone功能,我們還需要系統其余部分的支持。以下是一個啟用了TrustZone的系統示例: 本節探討了該系統中的關鍵組件以及它們在TrustZone中的作用。 完成器:外圍設備…

11、vue3(十一):sku管理:商品上下架,商品詳情,刪除sku

目錄 一、sku查詢頁面完成 1.代碼實現 (1)完成入參出參、接口代碼 (2)首頁頁面

點評項目——秒殺優化

2023.12.11 上一張的秒殺券下單還可以進行優化&#xff0c;先來回顧一下下單流程&#xff1a; 可以看出流程設計多次查詢和操作數據庫的操作&#xff0c;并且執行順序是一個線程串行執行&#xff0c;執行性能是比較低的。 優化方案&#xff1a;我們將判斷秒殺庫存和校驗一人一單…

WPF里面的Dispatcher詳解

在WPF應用程序中,Application.Current.Dispatcher是一個重要的屬性。它允許開發者在WPF應用程序的主線程上執行操作,這對于確保UI響應性和避免假死(程序沒有響應用戶輸入)非常關鍵。主線程負責接收輸入、處理事件、繪制屏幕等任務。為了避免在主線程上執行耗時的操作,開發…

websocket和SSE通信示例(無需安裝任何插件)

websocket和SSE通信示例&#xff08;無需安裝任何插件&#xff09; 源碼示例&#xff08;兩種方案任意切換&#xff09; data(){return {heartBeatInterval:5000,// 心跳間隔時間&#xff0c;單位為毫秒webSocket:null,heartBeatTimer:null,} }, mounted() {// this.initWebS…

從零開始實現神經網絡(三)_RNN循環神經網絡

參考文章&#xff1a;rnn循環神經網絡介紹 循環神經網絡 &#xff08;RNN&#xff09; 是一種專門處理序列的神經網絡。它們通常用于自然語言處理 &#xff08;NLP&#xff09; 任務&#xff0c;因為它們在處理文本方面很有效。在這篇文章中&#xff0c;我們將探討什么是 RNN&a…

圖文教程:從0開始安裝stable-diffusion

現在AI繪畫還是挺火&#xff0c;Midjourney雖然不錯&#xff0c;但是對于我來說還是挺貴的。今天我就來安一下開源的AI繪畫stable-diffusion,它的缺點就是對電腦的要求比較高&#xff0c;尤其是顯卡。 話不多說開搞。 訪問sd的github&#xff0c;https://github.com/AUTOMATIC…

〖大前端 - 基礎入門三大核心之JS篇(51)〗- 面向對象之認識上下文與上下文規則

說明&#xff1a;該文屬于 大前端全棧架構白寶書專欄&#xff0c;目前階段免費&#xff0c;如需要項目實戰或者是體系化資源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩編程&#xff0c;十余年工作經驗, 從事過全棧研發、產品經理等工作&#xff0c;目前在公司…

qt-C++筆記之addAction和addMenu的區別以及QAction的使用場景

qt-C筆記之addAction和addMenu的區別以及QAction的使用場景 code review! 文章目錄 qt-C筆記之addAction和addMenu的區別以及QAction的使用場景1.QMenu和QMenuBar的關系與區別2.addMenu和addAction的使用場景區別3.將QAction的信號連接到槽函數4.QAction的使用場景5.將例1修改…

基于單片機智能澆花控制系統設計

**單片機設計介紹&#xff0c;基于單片機智能澆花控制系統設計 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于單片機的智能澆花控制系統可以通過水泵、傳感器和單片機等硬件組件實現自動澆水&#xff0c;減輕人工澆花的工作…

【LeeCode】151.翻轉字符串里的單詞

給你一個字符串 s &#xff0c;請你反轉字符串中 單詞 的順序。 單詞 是由非空格字符組成的字符串。s 中使用至少一個空格將字符串中的 單詞 分隔開。 返回 單詞 順序顛倒且 單詞 之間用單個空格連接的結果字符串。 注意&#xff1a;輸入字符串 s中可能會存在前導空格、尾隨…

Mysql mybatis 語法示例

service package com.ruoyi.goods.service;import java.util.List; import com.ruoyi.goods.domain.GoodsProducts;/*** 商品Service接口* * author ruoyi* date 2023-08-27*/ public interface IGoodsProductsService {/*** 查詢商品* * param ProductID 商品主鍵* return 商…

基于OpenCV+CNN+IOT+微信小程序智能果實采摘指導系統——深度學習算法應用(含python、JS工程源碼)+數據集+模型(三)

目錄 前言總體設計系統整體結構圖系統流程圖 運行環境Python環境TensorFlow 環境Jupyter Notebook環境Pycharm 環境微信開發者工具OneNET云平臺 模塊實現1. 數據預處理1&#xff09;爬取功能2&#xff09;下載功能 2. 創建模型并編譯1&#xff09;定義模型結構2&#xff09;優化…

Docker與K8s的區別

Docker 和 K8s&#xff08;Kubernetes&#xff09;是兩個不同的技術&#xff0c;它們在容器化應用程序的管理和部署方面有著不同的角色和功能。 Docker 是一種容器化平臺&#xff0c;它允許您將應用程序及其所有依賴項打包到一個獨立的、可移植的容器中。Docker 提供了一種輕量…

《PySpark大數據分析實戰》-03.了解Hive

&#x1f4cb; 博主簡介 &#x1f496; 作者簡介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 熱衷于各種主流技術&#xff0c;熱愛數據科學、機器學習、云計算、人工智能。 通過了TiDB數據庫專員&#xff08;PCTA&#xff09;、TiDB數據庫專家&#xff08;PCTP…

恢復Django 項目

隨筆記錄 目錄 1. 重建Mysql DB 2. 啟動Django 項目 2.1 確保你的系統上已安裝pip工具。你可以使用以下命令來檢查pip是否已安裝 2.2 安裝Packages 2.2.1 安裝Django 2.2.2 安裝pymysql 2.2.3 安裝 kafka 2.2.4 安裝 requests 2.2.5 安裝simplepro 2.2.6 安裝libjp…