深入淺出:npm常用命令詳解與實踐【保姆級教程】

在這里插入圖片描述

大家好,我是CodeQi!

在我剛開始學習前端開發的時候,有一件事情讓我特別頭疼:管理和安裝各種各樣的依賴包。

那時候,我還不知道 npm 的存在,手動下載和管理這些庫簡直是噩夢。

后來,我終于接觸到了 npm(Node Package Manager),它不僅幫我解決了依賴管理問題,還讓我在開發效率上得到了質的飛躍。

今天,我決定把這些年來積累的 npm 使用經驗分享給大家,希望能幫助你們更高效地進行開發。

在這篇【保姆級教程】中,我們將深入淺出地了解 npm 的常用命令,并通過具體的實踐案例來加深理解。

準備好了嗎?讓我們開始吧!

1. 什么是 npm?

npm 全稱為 Node Package Manager,是 Node.js 的包管理工具和默認包管理器。它的主要功能包括:

  • 包管理:安裝、卸載、更新和查看包。
  • 依賴管理:自動處理包的依賴關系。
  • 腳本運行:通過 npm scripts 運行常見任務。
  • 包發布:將自己的包發布到 npm 倉庫。

npm 是每個 Node.js 開發者必備的工具,熟練使用它可以大大提升我們的開發效率。

2. 安裝和配置 npm

2.1 安裝 Node.js 和 npm

要使用 npm,首先需要安裝 Node.js。

可以在 Node.js 官網 下載并安裝最新版本的 Node.js。

安裝 Node.js 時會自動安裝 npm

2.2 檢查安裝

安裝完成后,打開終端(命令行),輸入以下命令來檢查 Node.js 和 npm 是否安裝成功:

node -v
npm -v

如果顯示出版本號,說明安裝成功。

2.3 配置 npm

npm 提供了一些配置選項,可以通過命令行進行設置。

例如,我們可以設置全局安裝包的路徑和緩存路徑:

npm config set prefix /usr/local
npm config set cache /home/user/.npm-cache

我們還可以通過以下命令查看所有的配置項:

npm config list

3. 基本命令詳解

3.1 初始化項目

在開始使用 npm 管理項目之前,我們需要先初始化一個項目。

初始化項目會創建一個 package.json 文件,用于描述項目的基本信息和依賴關系。

npm init

執行該命令后,npm 會提示你輸入一些項目信息,例如名稱、版本號、描述、入口文件、作者等。

也可以使用 -y 參數跳過所有提示,使用默認值初始化項目:

npm init -y

3.2 安裝依賴

安裝依賴是 npm 最常用的功能之一。可以使用以下命令安裝依賴包:

npm install <package-name>

例如,安裝 lodash

npm install lodash

默認情況下,npm 會將包安裝到 node_modules 目錄,并將依賴信息添加到 package.json 文件中的 dependencies 字段。

開發依賴

如果某個依賴只在開發過程中需要,而不需要在生產環境中使用,可以將其安裝為開發依賴:

npm install <package-name> --save-dev

例如,安裝 eslint 作為開發依賴:

npm install eslint --save-dev

3.3 卸載依賴

卸載依賴包時,npm 會從 node_modules 目錄中刪除包,并從 package.json 文件中移除對應的依賴項。

例如,卸載 lodash

npm uninstall lodash

如果你想卸載一個開發依賴,可以使用以下命令:

npm uninstall eslint --save-dev

3.4 更新依賴

隨著時間的推移,依賴包會發布新版本。

我們可以使用以下命令來更新依賴包:

npm update <package-name>

例如,更新 lodash

npm update lodash

這種方法只會更新 package.json 文件中指定版本范圍內的依賴。

如果你希望更新到最新版本,可以使用 npm install <package-name>@latest 命令:

npm install lodash@latest

3.5 查看依賴

要查看當前項目中安裝的所有依賴包,可以使用以下命令:

npm list

這會列出所有依賴包及其版本號。

如果只想查看頂級依賴(不包括子依賴),可以使用 --depth=0 參數:

npm list --depth=0

要查看全局安裝的包,可以使用以下命令:

npm list -g --depth=0

4. 高級命令詳解

4.1 運行腳本

npm 允許我們在 package.json 文件中定義腳本,并通過 npm run <script-name> 命令運行這些腳本。

例如,在 package.json 文件中添加以下內容:

"scripts": {"start": "node app.js","test": "mocha"
}

然后,我們可以使用以下命令運行這些腳本:

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

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

相關文章

Python深度理解系列之【排序算法——冒泡排序】

讀者大大們好呀&#xff01;&#xff01;!?????? &#x1f440;期待大大的關注哦?????? &#x1f680;歡迎收看我的主頁文章??木道尋的主頁 文章目錄 &#x1f525;前言&#x1f680;冒泡排序python實現算法實現圖形化算法展示 ??????總結 &#x1f525;前…

Apache POI、EasyPoi、EasyExcel

目錄 ?編輯 &#xff08;一&#xff09;Apache PoI 使用 &#xff08;二&#xff09;EasyPoi使用 &#xff08;三&#xff09;EasyExcel使用 寫 讀 最簡單的讀? 最簡單的讀的excel示例? 最簡單的讀的對象? &#xff08;一&#xff09;Apache PoI 使用 &#xff08;二&…

golang go-bindata打包配置文件嵌入到二進制文件

go-bindata打包配置文件嵌入到二進制文件 項目中難免會用到一些靜態資源和配置文件&#xff0c;但是常規打包的二進制文件無法再其他目錄正常運行&#xff08;靜態資源和配置文件不存在&#xff09; 有類似需求的可以安裝使用&#xff1a;go-bindata進行編譯處理配置文件 go-bi…

train_encoder_decoder.py

train_encoder_decoder.py from __future__ import print_function #為了確保代碼同時兼容Python 2和Python 3版本中的print函數# 導入標準庫和第三方庫 import os.path #導入了Python的os.path模塊&#xff0c;用于處理文件和目錄路徑 from os import path #從os模塊中導入了…

【場景題】數據庫優化和接口優化——異步思想

理解 異步處理&#xff1a; 對于耗時的操作&#xff0c;可以考慮使用異步處理方式來提升接口的響應速度。用戶可以在不阻塞當前操作的情況下&#xff0c;等待異步操作的結果。 異步處理在數據庫優化中的應用 雖然數據庫操作本身&#xff08;如查詢、插入、更新等&#xff09…

Git 安裝

目錄 Git 安裝 Git 安裝 在使用 Git 前我們需要先安裝 Git。Git 目前支持 Linux/Unix、Solaris、Mac 和 Windows 平臺上運行。Git 各平臺安裝包下載地址為&#xff1a;http://git-scm.com/downloads 在 Linux 平臺上安裝&#xff08;包管理工具安裝&#xff09; 首先&#xff0…

IIS在Windows上的搭建

&#x1f4d1;打牌 &#xff1a; da pai ge的個人主頁 &#x1f324;?個人專欄 &#xff1a; da pai ge的博客專欄 ??寶劍鋒從磨礪出&#xff0c;梅花香自苦寒來 目錄 一 概念&#xff1a; 二網絡…

深入理解C++中的鎖

目錄 1.基本互斥鎖&#xff08;std::mutex&#xff09; 2.遞歸互斥鎖&#xff08;std::recursive_mutex&#xff09; 3.帶超時機制的互斥鎖&#xff08;std::timed_mutex&#xff09; 4.帶超時機制的遞歸互斥鎖&#xff08;std::recursive_timed_mutex&#xff09; 5.共享…

【python腳本】批量檢測sql延時注入

文章目錄 前言批量檢測sql延時注入工作原理腳本演示 前言 SQL延時注入是一種在Web應用程序中利用SQL注入漏洞的技術&#xff0c;當傳統的基于錯誤信息或數據回顯的注入方法不可行時&#xff0c;例如當Web應用進行了安全配置&#xff0c;不顯示任何錯誤信息或敏感數據時&#x…

【TS】TypeScript 原始數據類型深度解析

&#x1f308;個人主頁: 鑫寶Code &#x1f525;熱門專欄: 閑話雜談&#xff5c; 炫酷HTML | JavaScript基礎 ?&#x1f4ab;個人格言: "如無必要&#xff0c;勿增實體" 文章目錄 TypeScript 原始數據類型深度解析一、引言二、基礎原始數據類型2.1 boolean2.2 …

蒼穹外賣--sky-take-out(四)10-12

蒼穹外賣--sky-take-out&#xff08;一&#xff09; 蒼穹外賣--sky-take-out&#xff08;一&#xff09;-CSDN博客?編輯https://blog.csdn.net/kussm_/article/details/138614737?spm1001.2014.3001.5501https://blog.csdn.net/kussm_/article/details/138614737?spm1001.2…

Unity動畫系統(2)

6.1 動畫系統基礎2-3_嗶哩嗶哩_bilibili p316 模型添加Animator組件 動畫控制器 AnimatorController AnimatorController 可以通過代碼控制動畫速度 建立動畫間的聯系 bool值的設定 trigger p318 trigger點擊的時候觸發&#xff0c;如喊叫&#xff0c;開槍及換子彈等&#x…

在js中如何Json字符串格式不對,如何處理

如果 JSON 字符串格式不正確&#xff0c;解析它時會拋出異常&#xff0c;但我們可以嘗試盡可能提取有效的信息。以下是一個方法&#xff0c;可以使用正則表達式和字符串操作來提取部分有效的 JSON 內容&#xff0c;即使整個字符串無法被 JSON.parse 完全解析。 示例代碼如下&a…

錯誤 [WinError 10013] 以一種訪問權限不允許的方式做了一個訪問套接字的嘗試 python ping

報錯提示&#xff1a;錯誤 [WinError 10013] 以一種訪問權限不允許的方式做了一個訪問套接字的嘗試 用python做了一個批量ping腳本&#xff0c;在windows專業版上沒問題&#xff0c;但是到了windows服務器就出現這個報錯 解決方法&#xff1a;右鍵 管理員身份運行 這個腳本 …

sql拉鏈表

1、定義&#xff1a;維護歷史狀態以及最新數據的一種表 2、使用場景 1、有一些表的數據量很大&#xff0c;比如一張用戶表&#xff0c;大約1億條記錄&#xff0c;50個字段&#xff0c;這種表 2.表中的部分字段會被update更新操作&#xff0c;如用戶聯系方式&#xff0c;產品的…

compute和computeIfAbsent的區別和用法

compute和computeIfAbsent都是Map接口中的默認方法&#xff0c;用于在映射中進行鍵值對的計算和更新。它們的主要區別在于它們的行為和使用場景。 compute 方法 定義: V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction);參數: k…

在 WebGPU 與 Vulkan 之間做出正確的選擇(Making the Right Choice between WebGPU vs Vulkan)

在 WebGPU 與 Vulkan 之間做出正確的選擇&#xff08;Making the Right Choice between WebGPU vs Vulkan&#xff09; WebGPU 和 Vulkan 之間的主要區別WebGPU 是什么&#xff1f;它適合誰使用&#xff1f;Vulkan 是什么&#xff1f;它適合誰使用&#xff1f;WebGPU 和 Vulkan…

修改CentOS7 yum源

修改CentOS默認yum源為阿里鏡像源 備份系統自帶yum源配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下載ailiyun的yum源配置文件 CentOS7 yum源如下&#xff1a; wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun…

AI領域最需要掌握的技術是什么?

在AI領域&#xff0c;掌握一系列核心技術和相關知識是非常重要的&#xff0c;以下是AI專業人士最需要掌握的一些關鍵技術&#xff1a; 1. **數學基礎** - 線性代數&#xff1a;用于處理向量和矩陣&#xff0c;是機器學習和深度學習的基石。 - 微積分&#xff1a;用于理解函數的…

SpringBoot項目使用WebSocket提示Error creating bean with name ‘serverEndpointExporter‘

問題描述&#xff1a;WebSocket在Controller中正常工作&#xff0c;但是在之后使用SpringBootTest進行單元測試的時候&#xff0c;突然提示WebSocket的相關錯誤。 錯誤提示&#xff1a; Exception encountered during context initialization - cancelling refresh attempt: …