NPM 常用命令

embedded/2024/9/25 8:18:56/

NPM 常用命令

NPM(Node Package Manager)是 JavaScript 生态系统中最流行的包管理工具,它不仅可以管理 Node.js 项目的依赖,还提供了丰富的命令来管理和发布你的代码。本文将从不同角度,深入浅出地介绍 NPM 的常用命令和实际应用。

目录

  1. NPM 基础
    • 什么是 NPM
    • 安装 NPM
    • 初始化项目 (npm init)
  2. 管理依赖
    • 安装依赖 (npm install)
    • 升级和卸载依赖 (npm update, npm uninstall)
    • 保存依赖 (--save, --save-dev)
  3. 运行脚本
    • 定义脚本 (scripts 字段)
    • 运行脚本 (npm run)
    • 常见脚本示例
  4. 包管理
    • 发布包 (npm publish)
    • 版本控制 (npm version)
    • 标记和发布标签 (npm tag)
  5. 配置和调试
    • 配置 NPM (npm config)
    • 查看和设置参数 (npm get, npm set)
    • 调试 NPM (npm audit, npm cache)

1. NPM 基础

什么是 NPM

NPM 是 Node.js 的包管理工具和默认的包管理器,它用于管理 JavaScript 代码包。NPM 仓库是全球最大的开源库,包含了数百万个 JavaScript 包。

  • 管理依赖:自动处理依赖的安装、升级和卸载。
  • 运行脚本:通过 package.json 中的 scripts 字段定义和运行项目任务。
  • 发布和分享:开发和发布自己的包到 NPM 仓库。
安装 NPM

NPM 通常与 Node.js 一起安装。你可以从 Node.js 官网 下载 Node.js,它包含了 NPM。

# 检查是否安装了 NPM
npm -v
npm_init_48">初始化项目 (npm init)

在开始使用 NPM 之前,你需要初始化一个项目,这会创建一个 package.json 文件,存储项目的元数据和依赖信息。

# 初始化项目并交互式创建 package.json 文件
npm init# 使用默认值快速初始化
npm init -y

package.json 文件包含了项目的名称、版本、描述、入口文件、脚本、依赖等信息。

{"name": "my-project","version": "1.0.0","description": "A simple NPM project","main": "index.js","scripts": {"start": "node index.js"},"dependencies": {},"devDependencies": {}
}

2. 管理依赖

NPM 的核心功能之一是管理项目的依赖库。这些依赖库可以是你项目所需的任何第三方包。

npm_install_82">安装依赖 (npm install)

NPM 通过 npm install 命令来安装包。你可以安装单个包,也可以安装 package.json 中列出的所有包。

# 安装一个指定的包
npm install lodash# 安装并保存到 package.json 中的 dependencies
npm install express --save# 安装并保存到 package.json 中的 devDependencies
npm install jest --save-dev# 安装 package.json 中的所有依赖
npm install

执行完 npm install 后,所有的包都会被安装到 node_modules 目录中,同时 package-lock.json 文件会记录精确的版本信息,确保项目在不同环境下的一致性。

npm_update_npm_uninstall_102">升级和卸载依赖 (npm update, npm uninstall)

你可以升级项目的依赖到最新版本,或卸载不再需要的依赖。

# 升级单个包到最新版本
npm update lodash# 升级所有包到最新版本
npm update# 卸载一个包
npm uninstall lodash# 卸载并从 package.json 中删除条目
npm uninstall lodash --save
npm uninstall jest --save-dev
保存依赖 (--save, --save-dev)
  • --save: 将依赖保存到 dependencies 字段,表示这些包在生产环境下也是必须的。
  • --save-dev: 将依赖保存到 devDependencies 字段,表示这些包只在开发环境下需要。
# 安装并保存到生产依赖
npm install express --save# 安装并保存到开发依赖
npm install jest --save-dev

3. 运行脚本

NPM 允许在 package.json 中定义脚本,用于自动化常见的开发任务。

定义脚本 (scripts 字段)

package.json 中,你可以通过 scripts 字段定义各种命令脚本。这些脚本可以通过 npm run 运行。

{"scripts": {"start": "node index.js","test": "jest","build": "webpack","lint": "eslint ."}
}
npm_run_155">运行脚本 (npm run)

要运行定义的脚本,可以使用 npm run <script-name>

# 运行 start 脚本
npm run start# 运行 test 脚本
npm run test# 运行 build 脚本
npm run build

对于 starttest 脚本,你可以省略 run 关键字,直接运行 npm startnpm test

常见脚本示例

一些常见的脚本定义和用途包括:

  • 启动服务器

    "scripts": {"start": "node server.js"
    }
    
  • 运行测试

    "scripts": {"test": "jest"
    }
    
  • 构建项目

    "scripts": {"build": "webpack --mode production"
    }
    
  • 代码风格检查

    "scripts": {"lint": "eslint ."
    }
    

4. 包管理

NPM 不仅是一个依赖管理工具,还可以用于发布和管理自己的 JavaScript 包。

npm_publish_210">发布包 (npm publish)

发布包到 NPM 仓库,让其他开发者可以安装和使用。

# 确保已经登录到 NPM
npm login# 发布当前目录下的包
npm publish

发布之前,请确保 package.json 文件配置正确,并且已经完成代码的所有必要准备工作。

npm_version_224">版本控制 (npm version)

使用 npm version 命令可以自动更新 package.json 中的版本号,并为代码打上 Git 标签。

# 更新补丁版本 (1.0.0 -> 1.0.1)
npm version patch# 更新次版本号 (1.0.0 -> 1.1.0)
npm version minor# 更新主版本号 (1.0.0 -> 2.0.0)
npm version major
npm_tag_239">标记和发布标签 (npm tag)

在发布包时,你可以为不同版本的包打上标签,以便于管理和区分。

# 为当前版本添加一个标签
npm tag add my-package@1.0.0 beta# 查看包的所有标签
npm dist-tag ls my-package

5. 配置和调试

NPM 提供了一系列的命令,用于配置和调试 NPM 及其行为。

npm_config_257">配置 NPM (npm config)

NPM 使用 .npmrc 文件存储配置,你可以通过 npm config 命令查看和修改这些配置。

# 查看所有配置
npm config list# 设置配置项
npm config set registry https://registry.npmjs.org/# 获取配置项的值
npm config get registry
npm_get_npm_set_272">查看和设置参数 (npm get, npm set)

npm getnpm set 命令允许你查看和设置单个配置项。

# 获取 registry 的值
npm get registry# 设置 registry 的值
npm set registry https://registry.npmjs.org/
npm_audit_npm_cache_284">调试 NPM (npm audit, npm cache)

NPM 提供了一些调试和优化命令,帮助你保持项目的健康和性能。

# 检查项目中的安全漏洞
npm audit# 修复可用的安全漏洞
npm audit fix# 清除 NPM 缓存
npm cache clean --force

这些命令帮助你识别和解决项目中的潜在问题,保持项目的健壮性和安全性。


总结

NPM 是一个强大的工具

,不仅仅是一个包管理器,它提供了从依赖管理、脚本执行、包发布到配置和调试的一整套功能。掌握这些常用的 NPM 命令和实践,能够极大地提高你在 JavaScript 项目开发中的效率和生产力。


http://www.ppmy.cn/embedded/55899.html

相关文章

【力扣 - 每日一题】3115. 质数的最大距离(一次遍历、头尾遍历、空间换时间、埃式筛、欧拉筛、打表)Golang实现

原题链接 题目描述 给你一个整数数组 nums。 返回两个&#xff08;不一定不同的&#xff09;质数在 nums 中 下标 的 最大距离。 示例 1&#xff1a; 输入&#xff1a; nums [4,2,9,5,3] 输出&#xff1a; 3 解释&#xff1a; nums[1]、nums[3] 和 nums[4] 是质数。因此答…

配置WLAN 示例

规格 仅AR129CVW、AR129CGVW-L、AR109W、AR109GW-L、AR161W、AR161EW、AR161FGW-L、AR161FW、AR169FVW、AR169JFVW-4B4S、AR169JFVW-2S、AR169EGW-L、AR169EW、AR169FGW-L、AR169W-P-M9、AR1220EVW和AR301W支持WLAN-FAT AP功能。 组网需求 如图1所示&#xff0c;企业使用WLAN…

Rust Eq 和 PartialEq

Eq 和 PartialEq 在 Rust 中&#xff0c;想要重载操作符&#xff0c;你就需要实现对应的特征。 例如 <、<、> 和 > 需要实现 PartialOrd 特征: use std::fmt::Display;struct Pair<T> {x: T,y: T, }impl<T> Pair<T> {fn new(x: T, y: T) ->…

Open AI Stream Completion Set Variable Inside Function PHP With Openai-php SDK

题意&#xff1a;使用 OpenAI 的 PHP SDK&#xff08;例如 openai-php&#xff09;来在函数内部设置和完成一个流&#xff08;stream&#xff09;相关的变量 问题背景&#xff1a; How to set variable inside this openai-php sdk function in stream completion ? I am usi…

自动编码器简单理解及简单使用描述

1. 什么是自动编码器&#xff1f; 自动编码器分为编码器和解码器&#xff0c;其中解码器只在训练阶段用到。具体过程就是&#xff1a; 首先&#xff0c;输入训练样本&#xff0c;编码器对输入样本进行编码&#xff0c;对其进行降维&#xff0c;直到到达某个瓶颈层&#xff1b…

工具提示框(Tooltip): 设计、应用与最佳实践

工具提示框&#xff08;Tooltip&#xff09;: 设计、应用与最佳实践 引言 工具提示框&#xff08;Tooltip&#xff09;是用户界面&#xff08;UI&#xff09;设计中的一种常见元素&#xff0c;它为用户提供关于界面元素或操作的额外信息。当用户将鼠标悬停在某个元素上时&…

你了解人工智能吗?

前言 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是计算机科学的一个重要分支&#xff0c;致力于开发能够执行通常需要人类智能的任务的系统。本文将从历史发展、关键技术、应用领域以及未来挑战等方面&#xff0c;深入探讨人工智能的相关内容。 …

MyBatis学习笔记-数据脱敏

如果项目需要对一些特殊、敏感的数据进行脱敏处理。根据实际的需求可以考虑在读写的过程中分别做脱敏操作。 一、写过程参数脱敏 主要是使用mybatis框架提供的Interceptor实现。需要考虑不同类型的参数解析处理方式不同。 @Slf4j @AllArgsConstructor @Intercepts({@Signatu…