【前端知识】npm命令行详细说明
npm命令行详细说明
- 概述
- 一、定义与功能
- 二、基本命令
- 三、配置文件与注册表
- 四、应用场景
- 五、高级特性
- 环境设置
- 1. 设置镜像源
- 2. 配置全局依赖存储路径
- 3. 配置缓存路径
- 4. 查看所有配置
- 5. 清除缓存
- 6. 升级npm版本
- npm组件打包
- 1. 初始化项目
- 2. 安装依赖
- 3. 构建脚本
- 4. 打包项目
- 5. 发布包
- 6. 其他常用命令
- 总结
- 项目构建相关
- 1. 初始化项目
- 2. 安装依赖
- 3. 更新依赖
- 4. 查看依赖
- 5. 卸载依赖
- 6. 运行脚本
- 7. 自定义脚本
- 8. 发布包
- 9. 其他常用命令
概述
npm(全称Node Package Manager)是Node.js的包管理工具,以下是关于npm的详细介绍:
一、定义与功能
npm是Node.js的默认包管理工具,它提供了一个模块仓库,允许开发人员从仓库中下载已发布的模块到本地,并可以将自己开发的模块发布到仓库中供他人使用。npm的主要功能包括:
- 包安装和管理:通过npm,用户可以方便地安装、更新、删除JavaScript包。
- 依赖管理:npm能够管理项目的依赖关系,确保项目的稳定性和一致性。
- 包发布和管理:开发者可以使用npm发布自己的包到npm注册表,并管理自己的包。
- 脚本执行:npm允许开发者在
package.json
中定义脚本,并通过npm运行这些脚本,从而简化开发流程。
二、基本命令
npm提供了一系列命令行工具,用于执行各种包管理操作。以下是一些常用的npm命令:
- npm install:安装包到当前项目的
node_modules
目录,并更新package.json
和package-lock.json
文件。 - npm uninstall:卸载已安装的包。
- npm update:更新项目中的包到最新版本。
- npm list:列出已安装的包及其依赖关系。
- npm init:初始化一个新的npm项目,并生成
package.json
文件。 - npm publish:将包发布到npm注册表。
- npm run:运行
package.json
中定义的脚本。
三、配置文件与注册表
- 配置文件:npm的配置文件为
~/.npmrc
或项目根目录下的.npmrc
文件。这些文件用于存储npm的配置信息,如注册表地址、全局安装包的路径、代理服务器地址等。 - 注册表:npm registry是npm包的存储和分发中心。通过registry,开发者可以发布、发现和安装npm包。常用的npm registry有npm官方注册表(https://registry.npmjs.org/)和淘宝npm镜像(https://registry.npm.taobao.org/)等。
四、应用场景
npm在JavaScript开发中有着广泛的应用场景,包括但不限于:
- Web开发:使用npm安装前端框架(如React、Vue.js、Angular)、构建工具(如Webpack、Gulp)、开发服务器等。
- Node.js应用:管理Node.js项目的依赖关系,执行各种脚本和任务,如安装中间件、运行测试等。
- 前端工程化:自动化构建、测试和部署等任务,使用npm安装构建工具、测试框架和部署工具。
- 包开发:创建、测试和发布自己的npm包,供其他开发者使用。
五、高级特性
npm还提供了一些高级特性和使用技巧,如:
- npm Workspaces:允许在一个
package.json
文件中管理多个项目,简化开发流程。 - npm ci:在持续集成(CI)环境中使用,提供更快的安装速度,并且只安装
package-lock.json
或npm-shrinkwrap.json
中列出的依赖。 - npm Outdated:检查哪些包已经过时,以便及时更新。
- npm Link:在开发多个包时,创建符号链接以共享代码。
- npm Deprecate:弃用一个包,并给出自定义的弃用理由。
- npm Access:管理包的访问权限,如设置为公开或受限。
综上所述,npm是JavaScript开发中不可或缺的工具之一,为开发者提供了高效、灵活和可靠的包管理解决方案。
环境设置
npm(Node Package Manager)的环境相关配置通常涉及设置镜像源、全局依赖存储路径、缓存路径等。以下是一些常用的npm环境配置命令行:
1. 设置镜像源
由于npm默认的镜像源在国外,有时会导致下载速度较慢。为了提高下载速度,可以配置使用国内的镜像源,如阿里镜像、腾讯镜像、华为镜像等。
- 配置使用阿里镜像:
npm config set registry https://registry.npmmirror.com
- 配置使用腾讯镜像:
npm config set registry https://mirrors.cloud.tencent.com/npm/
- 配置使用华为镜像:
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
- 恢复到npm官方源:
npm config set registry https://registry.npmjs.org/
- 查看当前registry的配置:
npm config get registry
*登录到仓库
npm login
2. 配置全局依赖存储路径
npm的全局依赖默认安装在系统的某个特定目录下。为了管理方便,可以配置一个自定义的全局依赖存储路径。
- 配置全局依赖存储路径(例如D:\GlobalNodeModules):
npm config set prefix "D:\GlobalNodeModules"
- 查看当前的全局依赖存储路径:
npm config get prefix
3. 配置缓存路径
npm会将下载的包存储在本地缓存中,以便在之后的安装过程中重复使用,避免重复下载。可以配置一个自定义的缓存路径。
- 配置缓存路径(例如D:\npm_repository\npm-cache):
npm config set cache "D:\npm_repository\npm-cache"
- 查看当前的缓存路径:
npm config get cache
4. 查看所有配置
要查看npm的所有配置信息,可以使用以下命令:
npm config list
5. 清除缓存
有时需要清除npm的本地缓存,可以使用以下命令:
npm cache clean --force # 旧版npm使用
npm cache verify # 验证缓存数据的完整性,并尝试修复任何问题
npm cache clean --all # 新版npm使用,清除所有缓存数据
注意:npm cache clean --force
命令在新版npm中可能已经被弃用,建议使用npm cache clean --all
或npm cache verify
来管理缓存。
6. 升级npm版本
如果node中自带的npm版本过低,可以升级到最新版本以提高性能和安全性。
- 查看当前npm版本:
npm -v
- 升级到最新版本:
npm install npm@latest -g
以上是一些常用的npm环境配置命令行,它们可以帮助你更好地管理和优化npm的使用环境。
npm组件打包
在npm(Node Package Manager)中,包构建命令通常指的是用于创建、打包和发布npm包的命令。以下是一些与npm包构建相关的常用命令:
1. 初始化项目
-
npm init
- 功能:初始化一个新的npm项目,并生成
package.json
文件。这个文件包含了项目的元数据,如包名、版本、描述、入口文件等,以及项目的依赖关系。 - 使用方法:在项目目录下运行
npm init
,然后按照提示输入相关信息,或者使用-y
参数快速生成包含默认值的package.json
文件。
- 功能:初始化一个新的npm项目,并生成
2. 安装依赖
-
npm install
- 功能:安装项目所需的依赖包。这些依赖包会被安装在
node_modules
目录下,并在package.json
文件的dependencies
或devDependencies
字段中列出。 - 使用方法:运行
npm install <package-name>
来安装指定的包,或者使用--save
(或-S
)参数将其添加到dependencies
中,使用--save-dev
(或-D
)参数将其添加到devDependencies
中。
- 功能:安装项目所需的依赖包。这些依赖包会被安装在
3. 构建脚本
-
npm run
- 功能:运行
package.json
文件中定义的脚本。这些脚本可以用于构建、测试、启动项目等任务。 - 使用方法:在
package.json
的scripts
字段中定义脚本,然后运行npm run <script-name>
来执行该脚本。例如,可以定义一个名为build
的脚本,用于构建项目,然后运行npm run build
来执行构建任务。
- 功能:运行
4. 打包项目
-
npm pack
- 功能:打包当前项目,生成一个
.tgz
格式的压缩包。这个压缩包包含了项目的所有内容和依赖信息,可以用于发布到npm仓库或其他地方。 - 使用方法:在项目目录下运行
npm pack
命令。
- 功能:打包当前项目,生成一个
5. 发布包
- npm publish
- 功能:将当前项目发布到npm仓库中。在发布之前,需要确保已经登录了npm账号,并且
package.json
文件中的信息完整无误。 - 使用方法:在项目目录下运行
npm publish
命令。如果之前已经发布过相同版本的包,需要先更新版本号或撤销之前的发布。
- 功能:将当前项目发布到npm仓库中。在发布之前,需要确保已经登录了npm账号,并且
6. 其他常用命令
-
npm version
- 功能:更新
package.json
文件中的版本号,并创建一个新的版本提交(git commit)。这个命令通常用于在发布新版本之前更新版本号。 - 使用方法:运行
npm version <newversion>
来更新版本号,其中<newversion>
是新的版本号(如1.0.1
)。
- 功能:更新
-
npm audit
- 功能:检查项目依赖中是否存在已知的安全漏洞,并给出修复建议。
- 使用方法:在项目目录下运行
npm audit
命令。
-
npm outdated
- 功能:列出当前项目中需要更新的依赖包及其最新版本。
- 使用方法:在项目目录下运行
npm outdated
命令。
-
npm uninstall
- 功能:卸载项目中的依赖包。
- 使用方法:运行
npm uninstall <package-name>
来卸载指定的包。
总结
npm包构建命令涵盖了从项目初始化、依赖安装、构建脚本定义、项目打包到发布包等一系列操作。熟练掌握这些命令对于开发和管理npm包至关重要。在使用这些命令时,建议查阅npm的官方文档或帮助信息,以获取更详细和最新的说明。
项目构建相关
npm(Node Package Manager)在项目构建中扮演着至关重要的角色,提供了一系列命令行工具来管理项目依赖、运行脚本、发布包等。以下是一些与npm项目构建相关的常用命令行:
1. 初始化项目
- npm init:
- 功能:创建一个新的
package.json
文件,该文件是Node.js项目的核心配置文件。 - 参数:通过一系列交互式问题,用户可以定义项目的基本信息,如名称、版本、描述、主入口文件等。
- 快速创建:使用
-y
参数可以快速创建并接受默认配置,例如npm init -y
。
- 功能:创建一个新的
2. 安装依赖
- npm install:
- 功能:安装项目依赖的所有包,这些包会被添加到
node_modules
文件夹中,并在package.json
的dependencies
字段中记录。 - 安装指定包:
npm install <package>
,其中<package>
是包的名称。 - 安装并保存为生产依赖:
npm install <package> --save
(或简写为-S
),将包作为生产依赖添加到dependencies
字段。 - 安装并保存为开发依赖:
npm install <package> --save-dev
(或简写为-D
),将包作为开发依赖添加到devDependencies
字段。
- 功能:安装项目依赖的所有包,这些包会被添加到
3. 更新依赖
- npm update:
- 功能:更新项目依赖的所有包到最新兼容版本。
- 更新指定包:
npm update <package>
,其中<package>
是包的名称。
4. 查看依赖
- npm list:
- 功能:列出项目依赖的所有包。
- 查看指定包:
npm list <package>
,其中<package>
是包的名称。 - 查看全局安装的包:
npm list -g
。
5. 卸载依赖
- npm uninstall:
- 功能:卸载本地依赖。
- 卸载指定包:
npm uninstall <package>
(或简写为npm rm <package>
),其中<package>
是包的名称。 - 从
package.json
中移除对应依赖记录:可以添加--save
(或-S
)或--save-dev
(或-D
)参数以确定是从哪个依赖列表中移除。 - 卸载全局包:
npm uninstall -g <package>
,其中<package>
是包的名称。
6. 运行脚本
- npm run:
- 功能:运行
package.json
中定义的脚本。 - 示例:在Vue项目中,
npm run serve
用于启动开发服务器,npm run build
用于构建生产环境的静态资源。
- 功能:运行
7. 自定义脚本
- 在
package.json
中添加脚本:- 可以在
package.json
的scripts
字段中定义自定义脚本,例如:"scripts": {"build": "npm run build:css && npm run build:js","build:css": "node-sass src/styles/main.scss dist/styles/main.css","build:js": "babel src/js --out-dir dist/js" }
- 然后通过
npm run <script-name>
命令来运行这些脚本,例如npm run build
。
- 可以在
8. 发布包
- npm publish:
- 功能:将包发布到npm注册表。
- 前提:需要先在npm上注册账号并登录,同时确保
package.json
中的信息完整且正确。
9. 其他常用命令
- npm outdated:检查项目依赖的包是否有更新。
- npm config ls:查看当前npm的配置信息。
- npm config set key value:设置npm的配置项,例如设置默认项目作者名称
npm config set init-author-name "Your Name"
。 - npm search :搜索npm仓库中的包。
- npm view :查看特定包的信息。
这些命令行工具是npm项目构建过程中的基础,熟练掌握它们将大大提高开发效率和项目管理的便捷性。
相关文章:

【前端知识】npm命令行详细说明
npm命令行详细说明 概述一、定义与功能二、基本命令三、配置文件与注册表四、应用场景五、高级特性 环境设置1. 设置镜像源2. 配置全局依赖存储路径3. 配置缓存路径4. 查看所有配置5. 清除缓存6. 升级npm版本 npm组件打包1. 初始化项目2. 安装依赖3. 构建脚本4. 打包项目5. 发布…...

Python网络爬虫技术详解与实践案例
Python网络爬虫技术详解与实践案例 在大数据和人工智能盛行的今天,数据的获取与分析成为许多项目和业务的关键。网络爬虫作为一种自动化的数据采集工具,广泛应用于数据挖掘、市场分析、情报收集等领域。本文将详细介绍Python网络爬虫的基本概念、工作流程、进阶技巧,并附上…...

【遥感目标检测综述】【GRSS】遥感目标检测与深度学习的相遇:挑战与进展的元综述
Remote Sensing Object Detection Meets Deep Learning: A Meta-review of Challenges and Advances 遥感目标检测与深度学习的相遇:挑战与进展的元综述 论文链接 0.论文摘要和作者信息 摘要 遥感目标检测(RSOD)是遥感领域最基…...

【大数据技术基础】 课程 第3章 Hadoop的安装和使用 大数据基础编程、实验和案例教程(第2版)
第3章 Hadoop的安装和使用 3.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中。H…...
【机器学习】机器学习的基本分类-监督学习-决策树-C4.5 算法
C4.5 是由 Ross Quinlan 提出的决策树算法,是对 ID3 算法的改进版本。它在 ID3 的基础上,解决了以下问题: 处理连续型数据:支持连续型特征,能够通过划分点将连续特征离散化。处理缺失值:能够在特征值缺失的…...

云计算vsphere 服务器上添加主机配置
这里是esxi 主机 先把主机打开 然后 先开启dns 再开启 vcenter 把每台设备桌面再vmware workstation 上显示 同上也是一样 ,因为在esxi 主机的界面可能有些东西不好操作 我们选择主机和集群 左边显示172.16.100.200...

Linux笔记---进程:进程替换
1. 进程替换的概念 进程替换是指在一个正在运行的进程中,用一个新的程序替换当前进程的代码和数据,使得进程开始执行新的程序,而不是原来的程序。 这种技术通常用于在不创建新进程的情况下,改变进程的行为。 我们之前谈到过for…...

量化交易backtrader实践(五)_策略综合篇(1)_股票软件指标回测
在第三章6到9节,我们学习和实践了大部分股票软件指标,且这些指标是backtrader内置指标实践中没有讲到过的。然后,在进行策略综合之前,我们先热个身,把一些可能比较有参考意义的股票软件内置指标在backtrader里给实现了…...

4.STM32通信接口之SPI通信(含源码)---软件SPI与W25Q64存储模块通信实战《精讲》
经过研究SPI协议和W25Q64,逐步了解了SPI的通信过程,接下来,就要进行战场实战了!跟进Whappy步伐! 目标:主要实现基于软件的SPI的STM32对W25Q64存储写入和读取操作! 开胃介绍(代码基本…...

MINDAGENT:游戏交互中的新兴性设计
一、摘要 1.问题/研究背景 LLM具有在多智能体系统中执行复杂调度的能力,并可以协调这些代理以完成需要广泛合作的复杂任务。 但是,目前还没有一个标准的游戏场景和相关的测试指标来评估 LLM 在游戏中的表现以及与人类玩家的合作能力。 2.研究目标/动…...

【工具变量】上市公司企业所在地城市等级直辖市、副省级城市、省会城市 计划单列市(2005-2022年)
一、包含指标: 股票代码 股票代码 股票简称 年份 所属城市 直辖市:企业所在地是否属于直辖市。1是,0否。 副省级城市:企业所在地是否属于副省级城市。1是,0否。 省会城市&a…...

C# 动态类型 Dynamic
文章目录 前言1. 什么是 Dynamic?2. 声明 Dynamic 变量3. Dynamic 的运行时类型检查4. 动态类型与反射的对比5. 使用 Dynamic 进行动态方法调用6. Dynamic 与 原生类型的兼容性7. 动态与 LINQ 的结合8. 结合 DLR 特性9. 动态类型的性能考虑10. 何时使用 Dynamic&…...

Css动画:旋转相册动画效果实现
🌈个人主页:前端青山 🔥系列专栏:Css篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Css篇专栏内容:Css动画:旋转相册动画效果实现 前言 随着Web技术的发展,网页不再局限于静态展示&#…...

Unity 基于Collider 组件在3D 物体表面放置3D 物体
实现 从鼠标点击的屏幕位置发送射线,以射线监测点击到的物体,根据点击物体的法线向量调整放置物体的位置及朝向。 Ray ray Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit, 100)) {obj.transform.…...

Hbase整合Mapreduce案例1 hdfs数据上传至hbase中——wordcount
目录 整合结构准备java API 编写pom.xmlMain.javaMap.javaReduce 运行 整合结构 准备 上传hdfs data.txt数据 data.txt I am wunaiieq QAQ 123456 Who I am In todays interconnected world the role of technology cannot be overstated It has revolutionized the way we …...

PyQt 中的无限循环后台任务
在 PyQt 中实现一个后台无限循环任务,需要确保不会阻塞主线程,否则会导致 GUI 无响应。常用的方法是利用 线程(QThread) 或 任务(QRunnable 和 QThreadPool) 来运行后台任务。以下是一些实现方式和关键点&a…...

5G CPE核心器件-基带处理器(三)
5G CPE 核心器件 -5G基带芯片 基带芯片简介基带芯片组成与结构技术特点与发展趋势5G基带芯片是5G CPE中最核心的组件,负责接入5G网络,并进行上下行数据业务传输。移动通信从1G发展到5G,终端形态产生了极大的变化,在集成度、功耗、性能等方面都取得巨大的提升。 基带芯片简…...

鸿蒙next版开发:拍照实现方案(ArkTS)
文章目录 拍照功能开发步骤1. 导入相关接口2. 创建会话3. 配置会话4. 触发拍照5. 监听拍照输出流状态 结语 在HarmonyOS 5.0中,ArkTS提供了一套完整的API来管理相机功能,特别是拍照功能。本文将详细介绍如何在ArkTS中实现拍照功能,并提供代码…...

C++面试突破---C/C++基础
1.C特点 1. C在C语言基础上引入了面对对象的机制,同时也兼容C语言。 2. C有三大特性(1)封装。(2)继承。(3)多态; 3. C语言编写出的程序结构清晰、易于扩充,程序可读性好。…...

项目搭建+修改
一 : 在列表成功回调函数,追加数据中,添加修改的按钮 for (let x of res) {//追加数据$("#table").append(<tr><td><input type"checkbox" class"ck" value"\${x.uid}"></td><td>\${x.uid}</td>…...

每日算法一练:剑指offer——树篇(4)
1.计算二叉树的深度 某公司架构以二叉树形式记录,请返回该公司的层级数。 示例 1: 输入:root [1, 2, 2, 3, null, null, 5, 4, null, null, 4] 输出: 4 解释: 上面示例中的二叉树的最大深度是 4,沿着路径 1 -> 2 -> 3 -&…...

Nginx静态资源配置
基本配置原则 明确资源目录:为不同类型的静态资源指定不同的路径,这样可以避免路径冲突,并且便于管理。正确设置文件权限:确保 Nginx 具有读取静态资源的权限。缓存优化:为静态资源设置缓存头(如 expires&…...

困扰解决:mfc140u.dll丢失的解决方法,多种有效解决方法全解析
当电脑提示“mfc140u.dll丢失”时,这可能会导致某些程序无法正常运行,给用户带来不便。不过,有多种方法可以尝试解决这个问题。这篇文章将以“mfc140u.dll丢失的解决方法”为主题,教大家有效解决mfc140u.dll丢失。 判断是否是“mf…...

D3.js 初探
文章目录 D3.js 简单介绍选择集与方法数据绑定方法选择集添加DOM元素以及删除元素理解update enter 以及 exit关于比例尺layout 布局force layout 坐标轴元素添加动态效果demo1: 绘制简单柱状图 #D3.js 初探 最近在做一个Data Visualization 的项目,由于对最终呈现的…...

linux常用指令 | 适合初学者
linux常用指令 1.ls: 列出当前,目录中的文件和子目录 ls 2.pwd: 显示当前工作目录的路径 pwd3.cd切换工作目录 cd /path/to/director4.mkdir:创建新目录 mkdir directory_name5.rmdir:删除空目录 rmdir directory_name6.rm: 删除文件或目录 rm file_name r…...

用 NotePad++ 运行 Java 程序
安装包 网盘链接 下载得到的安装包: 安装步骤 双击安装包开始安装. 安装完成: 配置编码 用 NotePad 写 Java 程序时, 需要设置编码. 在 设置, 首选项, 新建 中进行设置, 可以对每一个新建的文件起作用. 之前写的文件不起作用. 在文件名处右键, 可以快速打开 CMD 窗口, 且路…...

在 Linux 环境下搭建 OpenLab Web 网站并实现 HTTPS 和访问控制
实验要求 综合练习:请给openlab搭建web网站 网站需求: 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,…...

微信小程序wx.showShareMenu配置全局分享功能
在app.js文件中配置如下即可: onLaunch() {//开启分享功能this.overShare()},/*** 开启朋友圈分享功能* 监听路由切换/自动执行*/overShare() {wx.onAppRoute((res) > {// console.log(route, res)let pages getCurrentPages()let view pages[pages.length - …...

机器学习面试八股总结
下面是本人在面试中整理的资料和文字,主要针对机器学习面试八股做浅显的总结,大部分来源于ChatGPT,中间有借鉴一些博主的优质文章,已经在各文中指出原文。有任何问题,欢迎随时不吝指正。 文章系列图像使用动漫 《星游…...

南京邮电大学《2024年812自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《南京邮电大学812自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2024年真题 Part1:2024年完整版真题 2024年真题...