Node包管理工具

news2024/11/20 1:39:47

包管理工具

package代表了一组特定功能的源码集合。

管理包的应用软件,可以对包进行下载安装,更新,删除,上传等操作

借助包管理工具,可以快速开发项目,提高开发效率

前端常用包管理工具

npm

Node Package Manager :node的包管理工具

node在安装的时候会自动安装npm,npm -v可以查看版本号测试,显示版本号就是安装成功。
在这里插入图片描述

npm的基本使用

创建一个空目录,以此目录为工作目录启动命令行工具,执行npm init

npm init 命令的作用是将文件夹初始化为一个包,交互式创建package.json文件

package.json是包的配置文件,每个包都必须要有package.json

在这里插入图片描述

  • 初始化过程注意事项
    • package name不能使用中文,大学,默认是文件夹的名称,所以文件夹名也不能是中文或者大写
    • version要求x.x.x形式定义,x必须是数字,默认值是1.0.0
    • ISC整数与MIT证书功能上是相同的
    • package.json可以手动创建或修改
    • 使用npm init -y 或者npm init --yes极速创建package.json

搜索包名

命令行 npm s/search 关键字

(常用)网站搜索 npmjs

通过实践的不断积累,通过看文章看项目去学习去积累

下载安装包

npm install 和npm i命令安装包

运行之后会新增两个资源,node_modules文件夹存放下载的包

package-lock.json包的锁文件,用来锁定包的版本

安装uniq之后,uniq就是当前这个包的一个依赖包,有时会简称为依赖

eg:创建一个a包,a中安装了b包,b是a的一个依赖包或者说a依赖于b

const uniq = require('uniq');

let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];

const result = uniq(arr);
console.log(result);

在这里插入图片描述

require导入nnpm包基本流程

在当前文件夹下node_modules中寻找同名的文件夹

在上级目录下node_modules中寻找同名的文件夹,直至找到磁盘根目录

生产环境与开发环境

生产环境是专门用来写代码的环境,开发环境一般只能程序员自己访问

生产环境是项目代码正式运行的环境,一般是正式的服务器电脑,生产环境一般每个客户都可以访问

生产依赖和开发依赖

安装时设置选项来区分依赖的类型

生产依赖的命令

npm i -S uniq
npm i --save uniq
-S等效于–save,-S是默认选项

包信息保存在package.json中dependencies属性

开发依赖的命令

npm i -D less
npm i --save-dev less
-D等效于–save-dev

包信息保存在package.json中devdependencies属性




开发依赖是只在开发阶段使用的依赖包,而生产依赖是开发阶段和最终上线运行阶段都会用到的依赖包

npm全局安装

全局安装

npm i -g nodemon

全局安装之后可以在命令行任何位置进行nodemon命令(自动重启node应用程序)

说明

  • 全局安装的命令不受工作位置目录的影响
  • 可以通过npm root -g可以查看全局安装包的位置
  • 不是所有的包都适合全局安装,只有全局类的工具才适合,可以通过查看包的官方文档来确定安装方式
    在这里插入图片描述

修改windows执行策略

windows默认不允许npm全局命令执行脚本文件,所以需要修改执行策略

  • 以管理员身份打开powershell命令行
  • 键入命令 set-ExecutionPolicy remoteSigned

win10底部右键搜索显示搜索框,搜索框输入powershell,右键管理员身份运行。
在这里插入图片描述

修改完执行策略之后测试
在这里插入图片描述

或者更换命令行的类型,也可以修改成别的方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

环境变量Path

假设我们当前登陆操作系统的用户名是:zhangsan

然后我们要把c:\users\zhangsan\go\bin路径加入到PATH变量中,在windows下我们可以在PowerShell中执行:

$env:Path += ";c:\users\zhangsan\go\bin"

注意,这样仅仅只是临时修改当前的PATH变量,当我们关闭、重开PowerShell时,就需要重新设置。

如果要永久的修改,需要使用管理员权限启动PowerShell,然后执行:

setx /M PATH "%PATH%;c:\users\zhangsan\go\bin"

npm安装包的所有依赖

npm i可以依据package.json和package-lock.json的依赖声明安装目录依赖

npm i

npm install

node_modules文件夹大多数情况下都不会存入版本库,因为它体积太大了
一般拉项目之后是没有这个文件夹的,项目不能跑,需要安装所有依赖才可以,npm i就很重要。
一些常见的命令

  • 安装全局依赖 npm i
  • 安装指定版本的包 npm jquery@1.11.1
  • 删除依赖
  • 局部删除
  • npm remove uniq
  • npm r uniq
  • 全局删除
  • npm remove -g nodemon

npm配置命令别名

在package.json中配置script属性

  "yy": "code ./index.js",
    "start": "code ./index.js"

配置完成后可以使用别名执行命令,然后cmd终端运行(powershell运行报错了)

npm run yy
npm  run start

在这里插入图片描述

start别名使用时可以省略run

npm start

补充说明:

  • npm start是项目中的一个常用命令,一般用来启动项目。
  • npm run有自动向上级目录查找的特性,跟require函数也一样(不是当前文件夹目录也可以运行)
  • 对于陌生的项目,我们可以通过查看scripts属性来参考项目的一些操作。

yarn

JavaScript包管理工具
特点:安装速度超快,超级安全,可靠。
npm安装yarn

npm i -g yarn

yarn常用命令

  • 初始化 yarn init / yarn init -y
  • 安装包 yarn add uniq生产依赖/yarn add less --dev 开发依赖/yarn global add nodemon全局安装
  • 删除包 yarn remove uniq删除项目依赖包/yarn global add nodemon全局删除包
  • 安装项目依赖yarn
  • 运行命令别名 yarn 名字
    安装yarn之后在vscode终端初始化报错:
    错误: 找不到或无法加载主类 init

    查看一些文章修改了java的jdk(版本依旧没变),最后发现在系统的cmd中是可以正常运行的

    在这里插入图片描述

全局安装的包不可用,yarn全局安装包的位置可以通过yarn global bin来查看。

npm与yarn的选择

yarn配置淘宝镜像

yarn config set registry https://registry.npmmirror.com/

可以通过yarn config list 查看yarn的配置项
在这里插入图片描述

个人项目

随便选择

公司项目

根据项目代码来选择,可以通过锁文件判断项目的包管理工具

npm的锁文件为package-lock.json

yarn的锁文件为yarn.lock

切记包管理工具不要混用

cnpm

cnpm是一个淘宝构建的npmjs.com的完整镜像,也叫淘宝镜像
cnpm服务器部署在国内阿里云服务器萨格,可以提高 包的下载速度。
官方也提供了一个全局工具包cnpm,操作命令与npm大体相同。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cjTZZk64-1686623908418)(11.png)]

安装

通过npm来安装cnpm工具

npm install -g cnpm --registry=https://registry.npmmirror.com

操作命令

  • 初始化 cnpm init
  • 安装包 cnpm i uniq;cnpm i -S uniq;cnpm i -D uniq;cnpm i -g nodemon;
  • 安装项目依赖 cnpm i
  • 删除 cnpm r uniq

npm配置淘宝镜像

用npm也可以使用淘宝镜像,配置的方式两种

  • 直接配置
    npm install -g cnpm --registry=https://registry.npmmirror.com
  • 工具配置
  1. 使用nrm配置npm的镜像地址 npm registry manager
  2. 修改镜像

    nrm use taobao
  3. 检查是否配置成功(选做)
    npm connfig list
    检查register地址是否为npmmirror,如果是则表明成功
    补充说明:
    1.建议使用工具配置进行镜像配置,因为后续修改起来比较方便
    虽然cnpm可以提高速度,但是npm可以通过淘宝镜像进行加速,所以npm的使用率还是高于cnpm

npm发布一个包

创建与发布

将自己开发的工具包发布到npm服务上,方便自己和其他开发者使用。

  1. 创建文件夹,创建文件index.js,在文件中声明函数,使用modules.exports暴露
function add(a, b) {
 return a + b;
 }
// 暴露
 module.exports = {
   add
}
  1. npm初始化工具包,package.json填写包的信息(包的名字是唯一的)
  2. npmjs上注册账号
  3. 修改为官方的官方镜像(命令行中运行nrm use npm)
  4. 命令行下npm login填写相关的用户信息
  5. 命令行下npm publish提交包

更新包

后续可以对发布的包进行更新

  1. 更新包中的代码
  2. 测试代码是否可用
  3. 修改package.json的版本号
  4. 发布更新

npm publish

### 删除包
npm unpublish删除包
前提:那你是包的作者,发布小于24小时;发布大于24小时,没有其他包依赖,并且每周小于300下载量,并且只有一个维护者
## 包管理工具nvm
用来管理node版本的工具,方便切换不同版本的Node.js<br/>
### 常用命令
nvm list available 显示所有可以下载的Node.js版本<br/>
nvm on       #启用版本管理
nvm off      #禁用版本管理

nvm ls                  #查看本地 Node 版本
nvm ls-remote           #查看官网 Node 版本
nvm ls-remote --lts     #查看官网 Node LTS 版本

nvm current                 #显示当前的版本
nvm install [node版本号]     #安装指定版本
nvm uninstall [node版本号]   #卸载指定版本
nvm use [node版本号]         #使用指定版本

nvm alias default [node版本号]    #设置默认使用版本

nvm alias [别名] [node版本号]      #给不同的版本号添加别名
nvm unalias [别名]                #删除已定义的别名

nvm install-latest-npm                       #在当前node版本中,将npm升级到最新版
卸载指定版本
nvm use [node版本号]         #使用指定版本

nvm alias default [node版本号]    #设置默认使用版本

nvm alias [别名] [node版本号]      #给不同的版本号添加别名
nvm unalias [别名]                #删除已定义的别名

nvm install-latest-npm                       #在当前node版本中,将npm升级到最新版
nvm reinstall-packages [node版本号]           #在全局重新安装npm,从[node版本号]版本到当前版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/641131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法系列 | 3】深入解析排序算法之——选择排序

序言 你只管努力&#xff0c;其他交给时间&#xff0c;时间会证明一切。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级论点蓝色&#xff1a;用来标记二级论点 决定开一个算法专栏&#xff0c;希望能帮助大…

基于Hexo和Butterfly创建个人技术博客,(3) 创建博客文章及文章模板配置

Hexo官司网查看 这里 笔者个人站查看 这里 特别说明&#xff1a; hexo博客站点发布的文件全是静态文件&#xff0c;没有任何后台服务。博文的发布过程是&#xff1a;1、在本地用hexo new命令创建.md文件----2、经hexo g命令生成.html文件-----3、再通过hexo d命令发布到远程主机…

知网CN期刊《才智》简介及投稿邮箱

《才智》杂志成立于2001年&#xff0c;隶属吉林省人事厅&#xff0c;是经国家新闻出版总署批准的&#xff0c;吉林省人事系统唯一一本面向全国公开发行的杂志。是一本专业发表各类论文评定职称的省级理论性杂志。以挖掘各行各业拔尖人才、促进科教兴国、振兴人才市场为己任&…

python套接字(二):实现一个服务器和多客户端连接

文章目录 前言一、问题二、实现一个服务器连接多个客户端1、问题分析2、代码实现a、服务器端b、客户端 3、运行 前言 在上一篇博客python套接字(一)&#xff1a;socket的使用简单说明了一下套接字的使用&#xff0c;也实现了使用套接字来传输消息&#xff0c;但是也有一个问题…

深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比

【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍&#xff1a;【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化…

JavaWeb笔记(五)

JavaWeb后端 经过前面的学习&#xff0c;现在终于可以正式进入到后端的学习当中&#xff0c;不过&#xff0c;我们还是需要再系统地讲解一下HTTP通信基础知识&#xff0c;它是我们学习JavaWeb的基础知识&#xff0c;我们之前已经学习过TCP通信&#xff0c;而HTTP实际上是基于T…

使用SonarLint在开发阶段提高代码质量

使用SonarLint在开发阶段提高代码质量 SonarLint是什么 SonarLint是一个免费的IDE插件&#xff0c;是一个代码质量工具。 它可以在我们编写代码的时候&#xff0c;就帮我我们发现问题并提醒我们。可以帮助我们养成良好的代码习惯。 它支持5000条规则&#xff0c;可以帮助我…

如何在Microsoft Excel中使用MATCH查找值的位置

当你需要在电子表格中查找值的确切位置时,可以使用 Excel 中的 MATCH 函数。这样可以避免你手动搜索可能需要参考的位置或其他公式。 MATCH 函数通常与 INDEX 函数一起用作高级查找。但在这里,我们将介绍如何单独使用 MATCH 来找到价值所在。 一、Excel中的MATCH函数是什么 …

11. Synchronized与锁升级

11.1 面试题 ● 谈谈你对Synchronized的理解 ● Sychronized的锁升级你聊聊 ● Synchronized实现原理&#xff0c;monitor对象什么时候生成的&#xff1f;知道monitor的monitorenter和monitorexit这两个是怎么保证同步的嘛&#xff1f;或者说这两个操作计算机底层是如何执行的 …

【企业业务架构】LEANIX : 业务能力

业务能力是组织执行核心功能所需的能力、材料和专业知识的表达或发声。企业架构师使用业务能力来说明业务的总体需求&#xff0c;以便更好地制定满足这些业务需求的 IT 解决方案。 目录 介绍业务能力建模您可以通过业务能力映射实现什么&#xff1f;并购管理IT风险管理创新管理…

手把手教你入门 Docker

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…

DAY 76 分布式监控平台:zabbix

市场上常用的监控软件&#xff1a; 传统运维&#xff1a;zabbix、 Nagios云原生环境&#xff1a; Prometheus &#xff08;go语言开发的&#xff09; zabbix概述 作为一个运维&#xff0c;需要会使用监控系统查看服务器状态以及网站流量指标&#xff0c;利用监控系统的数据去…

国内云服务器全面对比

想要领取优惠券购买云服务可以前往我的云服务器领券购买。 经过疫情三年&#xff0c;大多行业开始复苏&#xff0c;企业开始布局以后得发展&#xff0c;云服务器作为企业发展几乎是必须的&#xff0c;一个企业从无到有&#xff0c;要经历很多&#xff0c;比如企业官网搭建&…

GaussDB云数据库SQL应用系列—索引管理

目录 一、前言 二、注意事项 三、索引创建 1、创建普通索引 2、创建唯一索引 3、创建多字段索引 4、创建部分索引 5、创建表达式索引 四、索引管理 1、查看索引信息 2、删除索引 总结 一、前言 随着互联网的快速发展&#xff0c;数据量呈现爆炸式增长。如何高效地…

PLC现场安装时需要注意的几个关键点

PLC适用于大多数工业现场&#xff0c;但它对使用场合、环境温度等还是有一定要求。控制PLC的工作环境&#xff0c;可以有效地提高它的工作效率和寿命。 在安装PLC时&#xff0c;要避开下列场所&#xff1a; 1.环境温度超过0 ~ 50℃的范围&#xff1b; 2.相对湿度超过85%或者…

Coggle 30 Days of ML 打卡任务二:苹果病害数据加载与数据增强

Coggle 30 Days of ML 打卡任务二&#xff1a;苹果病害数据加载与数据增强 任务二&#xff1a;苹果病害数据加载与数据增强 难度/分值&#xff1a;中/2 打卡内容&#xff1a; 参赛选手名称&#xff1a;AppleDoctor完成日期&#xff1a;2023.6.9任务完成情况&#xff1a; 使…

第四章 完型填空

第四章 完型填空 第一节 真题 2020-完型填空- Section I Use of English Directions&#xff1a; Read the following text. Choose the best word (s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) Being a good parent is, of cour…

Vue中使用editor.md(1):简单使用

0. 背景 在Vue项目中添加一个markdown编辑器&#xff0c;选择使用editor.md&#xff0c;记录在Vue项目中的简单使用。 1. 环境配置 1.1 下载editor.md 官网地址&#xff1a;http://pandao.github.io/editor.md/ 项目文件解压后放入&#xff1a;public/static/内 1.2 下…

【Linux】进程间的通信之共享内存

进程间的通信之共享内存 一、system V 内存共享原理二、共享内存的使用1、ftok函数2、shmget函数3、shmat函数4、shmdt函数5、shmctl函数6、代码使用 三、一些细节的补充 一、system V 内存共享原理 利用内存共享进行进程间的通信的原理其实分为以下几个步骤&#xff1a; 在物…

chatgpt赋能python:Python如何将英文转化为中文的最佳方法

Python如何将英文转化为中文的最佳方法 介绍 在现代全球化社会中&#xff0c;国与国之间的交流越来越频繁&#xff0c;相应的语言翻译工具的需求也愈发迫切。Python是一种易于学习、快速上手的编程语言&#xff0c;适合初学者和经验丰富的程序员使用&#xff0c;在语言翻译方…