node 之 npm

1.什么是包

node.js中的第三方模塊又叫做包
就像電腦和計算機指的是相同的東西,第三方模塊和包指的是同一個概念,只不過叫法不同

2.包的來源

不同于 Node.js 中的內置模塊與自定義模塊,包是由第三方個人或團隊開發出來的,免費供所有人使用。
注意:Node.js 中的包都是免費且開源的,不需要付費即可免費下載使用。

3.為什么需要包

由于 Node.js 的內置模塊僅提供了一些底層的 API,導致在基于內置模塊進行項目開發的時,效率很低。
包是基于內置模塊封裝出來的,提供了更高級、更方便的 API,極大的提高了開發效率。
包和內置模塊之間的關系,類似于jQuery 和 瀏覽器內置 API 之間的關系。

4.從哪里下載包

國外有一家IT 公司,叫做npm,Inc.這家公司旗下有一個非常著名的網站:地址,它是全球最大的包共享平臺,你可以從這個網站上搜索到任何你需要的包,只要你有足夠的耐心!
npm,Inc.公司提供了一個地址為 https://registry.npmjs.org/ 的服務器,器上下載自己所需要的包。
注意:
從 https://www.npmjs.com/ 網站上搜索自己所需要的包
從 https://registry.npmjs.org/ 服務器上下載自己需要的包

5.如何下載包

npm,Inc.公司提供了一個包管理工具,我們可以使用這個包管理工具,從 https://registry.npmjs.org/ 服務器把需要的包下載到本地使用。這個包管理工具的名字叫做 Node Package Manager(簡稱npm 包管理工具),這個包管理工具隨著 Nodejs 的安裝包一起被安裝到了用戶的電腦上。大家可以在終端中執行npm-v 命令,來查看自己電腦上所安裝的npm 包管理工具的版本號:

npm -v

6.npm 初體驗

6.1格式化時間的傳統做法

步驟
1??創建格式化時間的自定義模塊
2??定義格式化時間的方法
3??創建補零函數
4??從自定義模塊中導出格式化時間的函數
5??導入格式化時間的自定義模塊
6??調用格式化時間的函數

// 1. dateFormat.js文件定義格式化時間的方法
function dateFormat(dtStr) {const dt = new Date(dtStr)const y = dt.getFullYear()const m = padZero(dt.getMonth() + 1)const d = padZero(dt.getDate())const hh = padZero(dt.getHours())const mm = padZero(dt.getMinutes())const ss = padZero(dt.getSeconds())return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}// 定義補零的函數
function padZero(n) {return n > 9 ? n : '0' + n
}module.exports = {dateFormat
}
// 導入自定義的格式化時間的模塊
const TIME = require('./dateFormat')
// 調用方法,進行時間的格式化
const dt = new Date()
const newDT = TIME.dateFormat(dt)
console.log(newDT)

6.2格式化時間的高級做法

步驟:
1??使用npm包管理工具,在項目中安裝格式化時間的包moment
2??使用require()導入格式化時間的包
3??參考moment的官方API文檔對時間進行格式化

// 1. 導入需要的包
// 注意:導入的名稱,就是裝包時候的名稱
const moment = require('moment')const dt = moment().format('YYYY-MM-DD HH:mm:ss')
console.log(dt)

6.3在項目中安裝包的命令

npm install 包完整的名稱
簡寫:npm i 包完整的名稱

6.4初次裝包后多了哪些文件

初次裝包完成后,在項目文件夾下多一個叫做node modules 的文件夾和 package-lockjson 的配置文件
其中:
node modules 文件夾用來存放所有己安裝到項目中的包。require 導入第三方包時,就是從這個目錄中查找并加載包。package-lockjson 配置文件用來記錄 node modules 目錄下的每一個包的下載信息,例如包的名字、版本號、下載地址等。
注意:程序員不需要手動修改node_modulesh或package-lock.json文件中的任何代碼,npm包管理工具會自動維護它們。

6.5安裝指定版本的包

默認情況下,使用npm install 命令安裝包的時候,會自動安裝最新版本的包。如果需要安裝指定版本的包,可以在包名之后,通過@符號指定具體的版本,例如:
npm i moment@2.22.2

6.6包的語義化版本規范

包的版本號是以“點分十進制”形式進行定義的,總共有三位數字,例如2.24.0其中每一位數字所代表的的含義如下:
第1位數字:大版本
第2位數字:功能版本
第3位數字:Bug修復版本
版本號提升的規則: 只要前面的版本號增長了,則后面的版本號歸零

7.包管理配置文件

npm 規定,在項目根目錄中,必須提供一個叫做 packagejson 的包管理配置文件。用來記錄與項目有關的一些配置信息。例如:
項目的名稱、版本號、描述等
項目中都用到了哪些包
哪些包只在開發期間會用到
那些包在開發和部署時都需要用到

7.1如何記錄項目中安裝了哪些包

在項目根日錄中,創建一個叫做 package.json 的配置文件,即可用來記錄項目中安裝了哪些包。從而方便剔除node_modules 目錄之后,在團隊成員之間共享項目的源代碼
注意:今后在項目開發中,一定要把 node_modules 文件夾,添加到.gitignore 忽略文件中

7.2快速創建package.json

npm包管理工具提供了一個快捷命令,可以在執行命令所處的目錄中,快速創建package.json這個包管理配置文件:
npm init -y

7.3dependencies節點

package.json文件中,又一個dependencies節點,專門用來記錄npm install 命令安裝了哪些包

7.4一次性安裝所有的包

可以運行npm install命令或(npm i)一次性安裝所有的依賴包

執行npm install命令時,npm包管理工具會先獲取pack.json中的dependencies節點
讀取到記錄的所有依賴包名稱和版本號后,npm包管理工具會把這些包一次性下載到項目中
npm install

7.5卸載包

npm uninstall 包名

7.6devDependencies節點

如果某些包只在項目開發階段會用到,在項目上線之后不會用到,則建議把這些包記錄到devDependencies節點中。
與之對應的,如果某些包在開發和項目上線之后都需要用到,則建議把這些包記錄到dependencies節點中
npm i 包名 -D 或
npm install 包名 --save-dev

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

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

相關文章

【計算機網絡——應用層】http協議

文章目錄 1. http協議1.1 http協議簡介1.2 url組成1.3 urlencode與urldecode 2. http協議的格式2.1 http協議的格式2.2 一些細節問題 3. http的方法、狀態碼和常見響應報頭3.1 http請求方法3.2 http狀態碼3.3 http常見的響應報頭屬性 4. 一個非常簡單的http協議服務端5. http長…

【X806開發板試用】文章一 ubuntu開發環境搭建

一、環境配置 官方鏈接: 環境配置 1.安裝必要的庫和軟件 sudo apt-get install build-essential gcc g make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd64 binutils binutils-dev libdwarf-dev u-b…

pix2pix-zero

pix2pix-zero:零樣本圖像到圖像轉換 論文介紹 Zero-shot Image-to-Image Translation 關注微信公眾號: DeepGoAI 項目地址:https://github.com/pix2pixzero/pix2pix-zero 論文地址:https://arxiv.org/abs/2302.03027 本文介紹了一種名為…

Golang 函數中 defer 和 return 的調用順序

先來看一段代碼: package mainimport "fmt"func f() (ret int) {defer func() {ret}()return 1 } func main() {fmt.Println(f()) }上面這段代碼的輸出是2,不是1 原因在于: 1)ret 是在執行 return 1 語句后發生的 2&…

基于SpringBoot多模塊項目引入其他模塊時@Autowired無法注入

基于SpringBoot多模塊項目引入其他模塊時Autowired無法注入 一、問題描述1、解決方案 一、問題描述 啟動Spring Boot項目時報 Could not autowire. No beans of ‘xxxxxxxx’ type found. 沒有找到bean的實例,即spring沒有實例化對象,也就無法根據配置文…

【LeetCode-中等】209.長度最小的子數組-雙指針/滑動窗口

力扣題目鏈接 1. 暴力解法 這道題的暴力解法是兩層嵌套for循環,第一層循環從 i 0 開始遍歷至數組末尾,第二層循環從 j i 開始遍歷至找到總和大于等于 target 的連續子數組,并將該連續子數組的長度與之前找到的子數組長度相比較&#xff0…

傳輸層兩大戰將TCP、UDP的定位

傳輸層 定義一些傳輸數據的協議和端口,傳輸協議同時進行流量控制,根據接收方的數據吞入熟讀,規定適當的發送速率,解決傳輸效率及能力問題 什么是TCP TCP/IP即傳輸控制/網絡協議,是面向連接的協議,發送數…

什么是IP公網?

IP公網是指互聯網上可以公開訪問的IP地址。它是經過互聯網服務提供商(ISP)向用戶提供的公共網絡IP地址。與之相對的是內網IP地址,內網IP地址一般是由路由器或交換機分配給連接在局域網中的設備使用。 IP公網的作用非常廣泛,可以應…

C#解析JSON

https://blog.csdn.net/weixin_43046974/article/details/131449900 C#解析JSON 1. JSON定義2. JSON一般構成及解析方法3. 解析舉例子 1. JSON對象解析,只包含一層對象{}2. 嵌套JSON對象解析,包含多層對象{}3. JSON數組解析1(數組循環遍歷&…

Web APIs知識點講解(階段二)

DOM-事件基礎 一.事件 1.事件 目標:能夠給 DOM元素添加事件監聽 事件:事件是在編程時系統內發生的動作或者發生的事情,比如用戶在網頁上單擊一個按鈕 事件監聽:就是讓程序檢測是否有事件產生,一旦有事件觸發,就立即調用一個函…

http工具類

public class HttpRequstUtil {/*** http請求方法** param message 查詢條件* param url 查詢地址* param token 身份驗證token* param socketTimeout socket 響應時間* param connectTimeout 超時時間* return 返回字符串*/Deprecatedpublic stat…

金仕達與 DolphinDB 建立深度合作,共筑 FICC 科技創新新篇章

從“關起門做交易”到“打開門做服務”,國內 FICC 業務正經歷從自營到市場化服務的轉變,借助數據分析、算法交易等技術的快速發展,交易團隊能夠更加主動地發現市場需求,為不同客群提供更好的做市業務,FICC 交易電子化已…

打造智能汽車微服務系統平臺:架構的設計與實現

隨著智能汽車技術的飛速發展,微服務架構在汽車行業中的應用越來越廣泛。采用微服務架構可以使汽車系統更加靈活、可擴展,并且有利于快速推出新功能和服務。本文將從設計原則、關鍵技術、數據安全等方面,介紹如何搭建智能汽車微服務系統平臺架…

網絡通信技術

?1.分組交換技術 在網絡通信中,數據通過網絡節點的某種轉發方式,實現從一個端系統到另一個端系統之間的數據傳輸技術稱為數據交換技術。數據交換技術有電路交換、報文交換和分組交換,計算機網絡采用分組交換技術。 分組就是源主機(如服務器…

【Python】FastAPI 項目創建 與 Docker 部署

文章目錄 前言&需求描述1. 本地FastAPI1.1 Python 環境準備1.2 本地 Pycharm 創建FastAPI項目 2. Python FastAPI 部署2.1 服務器配置Python環境2.2.1 下載與配置Git、Pyenv等工具2.2.2 下載與配置Python 2.2 FastAPI 打包成鏡像2.2.1 項目準備所需環境文件2.2.2 編寫Docke…

畢業設計——基于springboot的聊天系統設計與實現(服務端 + 客戶端 + web端)

整個工程包含三個部分: 1、聊天服務器 聊天服務器的職責一句話解釋:負責接收所有用戶發送的消息,并將消息轉發給目標用戶。 聊天服務器沒有任何界面,但是卻是IM中最重要的角色,為表達敬意,必須要給它放個…

入侵和攻擊模擬 (BAS) 技術應用實踐

文章目錄 前言一、實施BAS的必要性二、實施BAS的關鍵步驟1、識別網絡中的脆弱區域2、創建基線安全模型3、選擇合適的BAS工具4、進行模擬攻擊測試5、分析結果并改進三、BAS實施中的挑戰1、組織的專業知識和能力有限2、改變傳統工作流程3、安全預算不足4、難以與現有安全基礎設施…

C語言中的不同變量初始值:深度解析與實踐指南

在C語言編程領域,理解和掌握變量的初始化原理和過程是構建穩健、高效代碼的基礎。C語言對不同類型變量的初始化處理方式存在差異,這要求開發者明確理解并合理應用這些規則以避免潛在的運行時錯誤和未定義行為。本文將詳細解讀C語言中各類變量的初始狀態設…

AI智能分析網關V4車輛違停算法在園區場景中的應用及特點

隨著城市化進程的加速,車輛違停問題愈發嚴重,給城市交通帶來了極大的困擾。為了解決這一問題,AI技術逐漸被應用于車輛違停的檢測中。AI檢測算法在車輛違停方面的應用,主要是通過計算機視覺技術,對道路上的車輛進行實時…

智慧灌區項目案例(甘肅省蘭州市某重點灌區)

?甘肅省蘭州市某重點灌區自上個世紀80年代建成后,灌溉面積達到30萬畝,對推動當地農業發展發揮了重要作用。但長期以來,該灌區的水利管理仍主要依靠人工統計記錄,缺乏實時監測和精細化管理。為實現灌區管理的現代化升級,甘肅水利局委托星創易聯公司設計實施水利信息化項目。 項…