当前位置: 首页 > news >正文

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官方内置的包管理工具。 命令行下打以下命令&#xff1a; npm -v如果返回版本号&#xff0c;则说明npm可以正常使用 4.1.1npm初始化 #在包所在目录下执行以下命令 npm init #正常初始化&#xff0c;手动…...

网络地址转换——NAT技术详解

网络地址转换——NAT技术详解 一、引言 随着互联网的飞速发展&#xff0c;IP地址资源日益紧张。为了解决IP地址资源短缺的问题&#xff0c;NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术应运而生。NAT技术允许一个私有IP地址的网络通…...

问:数据库存储过程优化实践~

存储过程优化是提高数据库性能的关键环节。通过精炼SQL语句、合理利用数据库特性、优化事务管理和错误处理&#xff0c;可以显著提升存储过程的执行效率和稳定性。以下是对存储过程优化实践点的阐述&#xff0c;结合具体示例&#xff0c;帮助大家更好地理解和实施这些优化策略。…...

C++ vector的使用(一)

vector vector类似于数组 遍历 这里的遍历跟string那里的遍历是一样的 1.auto&#xff08;范围for&#xff09; 2.迭代器遍历 3.operator void vector_test1() {vector<int> v;vector<int> v1(10, 1);//初始化10个都是1的变量vector<int> v3(v1.begin(), --…...

深入浅出:ProcessPoolExecutor 处理异步生成器函数

深入浅出&#xff1a;ProcessPoolExecutor 处理异步生成器函数 什么是 ProcessPoolExecutor&#xff1f;为什么要使用 ProcessPoolExecutor 处理异步生成器函数&#xff1f;ProcessPoolExecutor 处理异步生成器函数的基本用法1. 导入模块2. 定义异步生成器函数3. 定义处理函数4…...

elementUI表达自定义校验,校验在v-for中

注意&#xff1a;本帖为公开技术贴&#xff0c;不得用做任何商业用途 <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 系统下&#xff0c;安装 Elasticsearch 主要分为以下步骤&#xff1a; 1.1 准备工作 在开始安装之前&#xff0c;确保你的系统满足以下基本条件&#xff1a; CentOS 版本要求&#xff1a;推荐使用 CentOS 7 及以上版本。…...

短信验证码发送实现(详细教程)

短信验证码 接口防刷强检验以及缓存验证码阿里云短信服务操作步骤验证码发送实现 好久没发文啦&#xff01;最近也是在工作中遇到我自认为需要记录笔记的需求&#xff0c;本人只求日后回顾有迹可寻&#xff0c;不喜勿喷&#xff01; 废话不多说&#xff0c;直接上代码&#xff…...

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的一个小回忆笔记&#xff0c;当时假期花两天学的python&#xff0c;确实时隔几个月快忘光了&#xff0c;为了应付作业才回忆起来&#xff0c;不涉及太多基础&#xff0c;适用于有一定编程基础的参考回忆。 这一篇笔记来源于下面哔哩哔哩up主的视频&#xff1a; 一…...

JMeter快速入门示例

JMeter是一款开源的性能测试工具&#xff0c;常用于对Web服务和接口进行性能测试。 下载安装 官方下载网址&#xff1a; https://jmeter.apache.org/download_jmeter.cgi也可以到如下地址下载&#xff1a;https://download.csdn.net/download/oscar999/89910834 这里下载Wi…...

【333基于Java Web的考编论坛网站的设计与实现

毕 业 设 计&#xff08;论 文&#xff09; 考编论坛网站设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计…...

计算机网络关键名词中英对照

物理层 IMP - Interface Message Processor - 接口信息处理机 MODEM - Modulator-Demodulator - 调制解调器 LAN - Local Area Network - 局域网 FDM - Frequency Division Multiplexing - 频分复用 TDM - Time Division Multiplexing - 时分复用 STDM - Statistical Time…...

二叉树的学习

除了根节点外的其他节点只有一个直接前驱,有多个直接前驱的逻辑结构叫做图 任何一个树都可以看成是一个根节点和若干个不相交的子树构成的; 构建思维导图时使用树形结构 题目中给出AB是堂兄弟节点说明他们处在同一层 描述两节点之间的路径是从上到下的,同层没有路径,一条边记录…...

免费开源的医疗信息提取系统:提升超声波影像的诊断价值

一、系统概述 思通数科推出的医疗信息精准抽取系统&#xff0c;致力于解决当前医疗行业面临的信息碎片化和数据管理难题。传统医疗过程中&#xff0c;超声波影像数据与诊断报告之间的脱节&#xff0c;往往导致信息无法有效整合&#xff0c;影响医生的诊断效率与准确性。我们的…...

Bash 中的 ${} 和 $() 有什么区别 ?

Bash (Bourne-Again SHell) 是一种流行的 Unix SHell&#xff0c;用于编写脚本。如果您使用 Bash 脚本&#xff0c;那么了解不同的语法元素对于提高脚本的效率和避免错误是很重要的。 在本文中&#xff0c;我们将解释 Bash 中 ${} 和 $() 语法之间的区别&#xff0c;并向您展示…...

SPSS、R语言因子分析FA、主成分分析PCA对居民消费结构数据可视化分析

全文链接&#xff1a;https://tecdat.cn/?p37952 分析师&#xff1a;Ting Mei 在经济发展的大背景下&#xff0c;居民消费结构至关重要。本文围绕居民消费结构展开深入研究&#xff0c;运用 SPSS25.0 和 R 语言&#xff0c;以因子分析法和主成分分析法对东北三省居民消费价格指…...

高级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实现玩家下…...

【Linux驱动开发】设备树节点驱动开发入门

【Linux驱动开发】设备树节点驱动开发入门 文章目录 设备树文件设备树文件驱动开发附录&#xff1a;嵌入式Linux驱动开发基本步骤开发环境驱动文件编译驱动安装驱动自动创建设备节点文件 驱动开发驱动设备号地址映射&#xff0c;虚拟内存和硬件内存地址字符驱动旧字符驱动新字…...

C++——string的模拟实现(下)

目录 成员函数 3.4 修改操作 (3)insert()函数 (4)pop_back()函数 (5)erase()函数 (6)swap()函数 3.5 查找操作 (1)find()函数 (2)substr()函数 3.6 重载函数 (1)operator赋值函数 (2)其他比较函数 (3)流插入和流提取 完整代码 结束语 第一篇链接&#xff1a;C——…...

面试 Java 基础八股文十问十答第二十九期

面试 Java 基础八股文十问十答第二十九期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;类加载过程 类加载…...

454.四数相加||

题目: 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 思路: 考虑到时间复杂度问题&#xff0c;本题最重要的是要将四个数组划分成两个部分&#xff0c;每个部分(n^2)的时间复杂度&#xff0c;选取数据结构时&#xff0c;考虑到既要存储元素(key),又要有元素次数…...

禅道源码部署

文章目录 禅道部署1.环境部署安装httpd和mariadb安装php 2.安装禅道首先进行httpd服务的配置安装禅道 禅道部署 1.环境部署 安装lamp环境 组件版本httpdyum安装mariadbyum安装phpphp-7.4.33 选择一个php版本就行&#xff0c;我们这里选择的是7.4.33 安装httpd和mariadb [r…...

️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具

在网络安全领域&#xff0c;漏洞的发现和修复是保护系统安全的关键。今天&#xff0c;我要向大家介绍一款创新的工具——Vulnhuntr&#xff0c;这是一款利用大型语言模型&#xff08;LLM&#xff09;进行零样本漏洞发现的工具&#xff0c;能够自动分析代码&#xff0c;检测远程…...

【Android】多渠道打包配置

目录 简介打包配置签名配置渠道配置配置打包出来的App名称正式包与测试包配置 打包方式开发工具打包命令行打包 优缺点 简介 多渠道打包 是指在打包一个 Android 应用时&#xff0c;一次编译生成多个 APK 文件&#xff0c;每个 APK 文件针对一个特定的渠道。不同的渠道可能代表…...

Spring Boot Configuration和AutoConfiguration加载逻辑和加载顺序调整

在spring中, AutoConfiguration也是一个种Configuration,只是AutoConfiguration是不能使用proxy的。 而且spring对于两者的加载顺序也不是一视同仁,是有顺序的。spring会先加载@SpringBootApplication可达的且标注了@Configuration的类,这个过程会将@AutoConfiguration标注…...

点餐系统需求分析说明书(软件工程分析报告JAVA)

目录 1 引言 4 1.1 编写目的 4 1.2 项目背景 4 1.3 定义 4 1.4 预期的读者 5 1.5 参考资料 5 2 任务概述 5 2.1 目标 5 2.2 运行环境 5 2.3 条件与限制 6 3 数据描述 6 3.1 静态数据 6 3.2 动态数据 6 3.3 数据库介绍 6 3.4 对象模型 6 3.5 数据采集 7 4 动态模型 7 4.1 脚本 …...

Python条形图 | 指标(特征)重要性图的绘制

在数据科学和机器学习的工作流程中&#xff0c;特征选择是一个关键步骤。通过评估每个特征对模型预测能力的影响&#xff0c;我们可以选择最有意义的特征&#xff08;指标&#xff09;&#xff0c;从而提高模型的性能并减少过拟合。本文将介绍如何使用 Python 的 Seaborn 和 Ma…...

食品品牌推广方案/广东网站se0优化公司

IBM全球服务中心最近发布的一份白皮书描述了IBM技术研究院&#xff08;Academy of Technology&#xff09;为取得SOA实施的成功所运用的经验。具体地讲&#xff0c;他们关注于以下五个优先考虑事项&#xff1a; 以面向未来的眼光进行架构开发——对SOA实施来说&#xff0c;最需…...

求职网站网页模板/海外推广营销系统

精彩回顾如何实现H5可视化编辑器的实时预览和真机扫码预览功能在线IDE开发入门之从零实现一个在线代码编辑器基于ReactKoa实现一个h5页面可视化编辑器&#xff0d;DooringTS核心知识点总结及项目实战案例分析前言本文是基于上一篇文章介绍H5编辑器 后台管理系统实战的第二篇文章…...

wordpress生成sitemap/广告营销的经典案例

使用EEPROM实现LED状态保存与恢复 当定义和使用变量时,代码中生成的数据仅在Arduino开启时才持续存在。 如果重置或关闭Arduino的电源,则存储的数据将消失。如果要保留数据以备将来使用,则需要使用Arduino EEPROM。 即使Arduino重置或电源关闭,它也会存储变量的数据。 EE…...

vs可以做网站吗/十大中文网站排名

在真实部署环境中&#xff0c;很难将dist生成的内容直接部署到服务器根目录。直接按默认配置build的项目无法在子文件夹中正常运行&#xff0c;需要进行如下配置&#xff1a; 例如&#xff1a; 将项目部署到服务器根目录下的project文件夹下&#xff1a; 修改Router index.js…...

日本做a爱片视频网站/seo自学网

emsp; 我们在GPU的基本概念一节中&#xff0c;讲到过GPU中的内存模型&#xff0c;但那一节只是对模型的简单介绍&#xff0c;这一节&#xff0c;我们对GPU的内存进行更加深入的说明。 首先来回顾一下GPU中的内存&#xff1a; 每个线程都有自己的私有本地内存&#xff08;Loca…...

优化网站目录结构/免费seo培训

我正在尝试安装并运行syslog-ng但是我被阻止了以下错误.Error opening configuration file; filename/etc/syslog-ng/syslog-ng.conf,errorPermission denied (13)我用sudo运行它,文件和目录现在都有777权限.我已经使用了strace,这肯定是一个公开的电话,但是EACCESS失败了.据我…...