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实现玩家下…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...