7、Nodes.js包管理工具
四、包管理工具
4.1 npm(Node Package Manager)
Node.js官方内置的包管理工具。
命令行下打以下命令:
npm -v
如果返回版本号,则说明npm可以正常使用
4.1.1npm初始化
#在包所在目录下执行以下命令
npm init #正常初始化,手动输入包信息
npm init -y #快速初始化,全部使用默认的信息
完成后会在目录下生成package.json文件,文件内容如下:
{"name": "01_npm","version": "1.0.0","description": "Mypackage01","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"author": "","license": "ISC"
}
注意事项:
1、package name(包名)不能使用中文和大写字母,默认是包的目录名,所以包目录名最好也不要使用中文和大写字母
2、version(版本号)要求x.x.x格式,x必须是数字,默认为1.0.0
3、ISC证书和MIT证书功能上是相同的
4、package.json可以手动创建和修改
5、使用npm init -y 或npm init --yes,可以快速创建package.json(全部使用默认值)
4.1.2搜索包
1)命令行方式
npm s <关键字>
npm search <关键字>
2)网站搜索
https://www.npmjs.com
4.1.3安装包
npm i <packageName>
npm i <packageName@version> ##安装指定版本
安装完以后,会在当前目录下生成一个名为node_modules的目录,这个目录下会保存所有安装的包。

这里我们安装了两个包(math和uniq)。
math和uniq里有js文件(包的主程序文件)和package.json(用于描述包的基本信息)
4.1.4导入安装的包
//导入并使用已安装的uniq包
//导入的时候会先到当前上当的node_modules里去找,如果没有找到,则会到上一级目录中的node_modules目录中去找,直到找到根目录为止
const uniq=require('uniq')let arr = [1,1,2,2,3,3]const result = uniq(arr)
console.log(result)
输出:
[ 1, 2, 3 ]
4.1.5生产依赖和开发依赖
开发环境:专门用来定代码的环境,只有程序员自己可以访问
生产环境:代码正式运行的环境,每个客户都可以访问
npm i -S <packageName> #生产依赖(默认),包信息保存在package.json的dependencies中。
npm i -D <packageName> #开发依赖,包信息保存在package.json的devDependencies中。
//package.json
{"dependencies": { //math和uniq是生产依赖的包"math": "^0.0.3","uniq": "^1.0.1"},"devDependencies": { //less是开发依赖的包(安装方式:nqm i -D less)"less": "^4.2.0"}
}
4.1.6全局安装
npm i -g <packageName>
全局安装的包,可以在命令行下任意位置运行
全局安装的包,不受工作目录及位置的影响
可以通过npm root -g,来查看全局安装名的位置
不是所有的包都适合使用全局安装,只有全局类的工具才适合。
示例:
#使用nodemon启动js文件,如果js文件有修改的话,它会自动重启服务
npm i -g nodemon
4.1.7安装npm包的全部依赖
#根据package.json和package-lock.json安装所有的依赖
#因为node-modules这个通常不会存入版本库(git),当其它程序员拉取代码后,是不包含npm包的,所以需要重新安装所有依赖
npm i
npm install
4.1.8删除npm包
npm r <packageName>
npm remove <packageName>
npm r -g <packageName> //删除全局包
4.1.9配置npm命令别名
通过配置别名,可以更简单的执行命令
配置package.json
"scripts": {"server":"node ./server.js","start":"node ./index.js",}
这样可以通过别名来执行命令
npm run server
npm start //start这个别名执行的时候不需要带run
4.1.20 cnpm
cnpm是淘宝构建的npmjs.com的完整镜像,也称为淘宝镜像,https://registry.npmmirror.com/
cnpm服务部署在国内阿里云上,可以提高包的下载速度
官方提供了一个全局工具包cnpm,功能和使用方式和npm相同
安装cnpm:
npm --registry https://registry.npmmirror.com/ i -g cnpm
4.1.21npm配置淘宝镜像
1)安装nrm工具
cnpm i -g nrm
2)使用nrm查看可用的镜像
nrm ls
输出:
npm ---------- https://registry.npmjs.org/ #官方镜像
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
huawei ------- https://repo.huaweicloud.com/repository/npm/
3)切换到淘宝镜像
nrm use taobao
4)查看是否切换成功
npm config list
输出:
#这里我们看到,已经切换到了淘宝镜像
home = "https://npmmirror.com"
registry = "https://registry.npmmirror.com/"
4.2.22 使用npm发布包
1、创建一个包
2、注册账号并激活(https://www.npmjs.com/signup)
3、修改为官方镜像(npm use npm)
4、登入:(npm login)
5、提交包:(npm publish)
4.2.23更新包
1、更新代码
2、修改package.json中的版本号
3、发布更新(npm publish)
4.2.24删除包
npm unpublish
4.2yarn
yarn是facebook在2016年推出的新的Javascript包管理工具,官方地址:https://yarnpkg.com
特点:
速度快:yarn缓存了每个下载过的包,所以再次使用时,无需重新下载;
安全:在执行代码之前,会通过算法校验安装包的完整性;
可靠:使用详细、简洁的锁文件格式和明确的安装算法,能保证在不同的系统上无差异工作。
4.2.1安装yarn
npm i -g yarn
4.2.2常用命令
#初始化
yarn init /yarn init -y
#安装包
yarn add <packageName> #生产依赖
yarn add <packageName -dev> #开发依赖
#删除包
yarn remove <packageName> #删除项目依赖包
yarn global remove <packageName> #全局删除包#安装所有项目依赖
yarn#运行命令别名
yarn <别名> #不需要加run
4.2.3yarn配置淘宝镜像
yarn config set registry https://registry.npmmirror.com/
yarn config list #查看配置信息
4.3 node版本管理工具nvm
nvm(Node Version Manager),是用来管理node版本的工具,方便切换不同版本的node.js
下载地址:
https://github.com/coreybutler/nvm-windows/releases
常用命令
nvm list available #显示所有可以下载的Node.js版本
nvm list #显示已安装的版本
nvm install 18.12.1 #安装18.12.1版本的Node.js
nvm uninstall 18.12.1 #删除某个版本的js
nvm install lastest #安装最新新版本
nvm use 18.12.1 #切换到18.12.1版本的Node.js
相关文章:
7、Nodes.js包管理工具
四、包管理工具 4.1 npm(Node Package Manager) Node.js官方内置的包管理工具。 命令行下打以下命令: npm -v如果返回版本号,则说明npm可以正常使用 4.1.1npm初始化 #在包所在目录下执行以下命令 npm init #正常初始化,手动…...
网络地址转换——NAT技术详解
网络地址转换——NAT技术详解 一、引言 随着互联网的飞速发展,IP地址资源日益紧张。为了解决IP地址资源短缺的问题,NAT(Network Address Translation,网络地址转换)技术应运而生。NAT技术允许一个私有IP地址的网络通…...
问:数据库存储过程优化实践~
存储过程优化是提高数据库性能的关键环节。通过精炼SQL语句、合理利用数据库特性、优化事务管理和错误处理,可以显著提升存储过程的执行效率和稳定性。以下是对存储过程优化实践点的阐述,结合具体示例,帮助大家更好地理解和实施这些优化策略。…...
C++ vector的使用(一)
vector vector类似于数组 遍历 这里的遍历跟string那里的遍历是一样的 1.auto(范围for) 2.迭代器遍历 3.operator void vector_test1() {vector<int> v;vector<int> v1(10, 1);//初始化10个都是1的变量vector<int> v3(v1.begin(), --…...
深入浅出:ProcessPoolExecutor 处理异步生成器函数
深入浅出:ProcessPoolExecutor 处理异步生成器函数 什么是 ProcessPoolExecutor?为什么要使用 ProcessPoolExecutor 处理异步生成器函数?ProcessPoolExecutor 处理异步生成器函数的基本用法1. 导入模块2. 定义异步生成器函数3. 定义处理函数4…...
elementUI表达自定义校验,校验在v-for中
注意:本帖为公开技术贴,不得用做任何商业用途 <el-form :inline"true" :rules"rules" :model"formData" ref"formRef" class"mt-[20px]"><el-form-item label"选择区域" prop&qu…...
Elasticsearch 在linux部署 及 Docker 集群部署详解案例示范
1. 在 CentOS 上安装和配置 Elasticsearch 在 CentOS 系统下,安装 Elasticsearch 主要分为以下步骤: 1.1 准备工作 在开始安装之前,确保你的系统满足以下基本条件: CentOS 版本要求:推荐使用 CentOS 7 及以上版本。…...
短信验证码发送实现(详细教程)
短信验证码 接口防刷强检验以及缓存验证码阿里云短信服务操作步骤验证码发送实现 好久没发文啦!最近也是在工作中遇到我自认为需要记录笔记的需求,本人只求日后回顾有迹可寻,不喜勿喷! 废话不多说,直接上代码ÿ…...
P450催化的联芳基偶联反应-文献精读72
Chemoenzymatic Synthesis of Fluorinated Mycocyclosin Enabled by the Engineered Cytochrome P450-Catalyzed Biaryl Coupling Reaction 经工程化的细胞色素P450催化的联芳基偶联反应实现氟代麦环素的化学酶促合成 摘要 将氟原子引入天然产物有望生成具有改良或新颖药理特…...
在不支持AVX的linux上使用PaddleOCR
背景 公司的虚拟机CPU居然不支持avx, 默认的paddlepaddle的cpu版本又需要有支持avx才行,还想用PaddleOCR有啥办法呢? 是否支持avx lscpu | grep avx 支持avx的话,会显示相关信息 如果不支持的话,python运行时导入paddle会报错 怎么办呢 方案一 找公司it,看看虚拟机为什么…...
Python数据分析——Numpy
纯个人python的一个小回忆笔记,当时假期花两天学的python,确实时隔几个月快忘光了,为了应付作业才回忆起来,不涉及太多基础,适用于有一定编程基础的参考回忆。 这一篇笔记来源于下面哔哩哔哩up主的视频: 一…...
JMeter快速入门示例
JMeter是一款开源的性能测试工具,常用于对Web服务和接口进行性能测试。 下载安装 官方下载网址: https://jmeter.apache.org/download_jmeter.cgi也可以到如下地址下载:https://download.csdn.net/download/oscar999/89910834 这里下载Wi…...
【333基于Java Web的考编论坛网站的设计与实现
毕 业 设 计(论 文) 考编论坛网站设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计…...
计算机网络关键名词中英对照
物理层 IMP - Interface Message Processor - 接口信息处理机 MODEM - Modulator-Demodulator - 调制解调器 LAN - Local Area Network - 局域网 FDM - Frequency Division Multiplexing - 频分复用 TDM - Time Division Multiplexing - 时分复用 STDM - Statistical Time…...
二叉树的学习
除了根节点外的其他节点只有一个直接前驱,有多个直接前驱的逻辑结构叫做图 任何一个树都可以看成是一个根节点和若干个不相交的子树构成的; 构建思维导图时使用树形结构 题目中给出AB是堂兄弟节点说明他们处在同一层 描述两节点之间的路径是从上到下的,同层没有路径,一条边记录…...
免费开源的医疗信息提取系统:提升超声波影像的诊断价值
一、系统概述 思通数科推出的医疗信息精准抽取系统,致力于解决当前医疗行业面临的信息碎片化和数据管理难题。传统医疗过程中,超声波影像数据与诊断报告之间的脱节,往往导致信息无法有效整合,影响医生的诊断效率与准确性。我们的…...
Bash 中的 ${} 和 $() 有什么区别 ?
Bash (Bourne-Again SHell) 是一种流行的 Unix SHell,用于编写脚本。如果您使用 Bash 脚本,那么了解不同的语法元素对于提高脚本的效率和避免错误是很重要的。 在本文中,我们将解释 Bash 中 ${} 和 $() 语法之间的区别,并向您展示…...
SPSS、R语言因子分析FA、主成分分析PCA对居民消费结构数据可视化分析
全文链接:https://tecdat.cn/?p37952 分析师:Ting Mei 在经济发展的大背景下,居民消费结构至关重要。本文围绕居民消费结构展开深入研究,运用 SPSS25.0 和 R 语言,以因子分析法和主成分分析法对东北三省居民消费价格指…...
高级SQL技巧掌握
高级SQL技巧掌握 在数据驱动的时代,掌握SQL不仅仅是为了解决具体问题,它更像是一把钥匙,帮助你打开数据分析的大门。你准备好提升你的SQL技能了吗?在这篇文章中,我们将一起探索十个必备的高级SQL查询技巧,这些技巧将帮助你更有效率地进行数据处理与分析。 1. 常见表表达…...
数组实例之三子棋的实现(C语言)
目录 前言 一、三子棋实现的逻辑 二、三子棋的实现 2.1文件的创建添加 2.2 test文件基本逻辑 2.2.1菜单的实现 2.2.2菜单的选择 2.2.3game函数棋盘的实现 2.3game.c文件的编写 2.3.1初始化函数的模块 2.3.2棋盘打印的模块 2.3.3实现棋盘界面的打印 2.3.4实现玩家下…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
在Spring Boot中集成RabbitMQ的完整指南
前言 在现代微服务架构中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件,支持多种消息协议,具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...
