【npm | npm常用命令及镜像设置】

npm常用命令及镜像设置

  • 概述
  • 常用命令
  • 对比
    • 本地安装
    • 全局安装
    • `--save` (或 `-S`)
    • `--save-dev` (或 `-D`)
  • 镜像设置
    • 设置镜像方法
    • 切换回npm官方镜像
    • 选择镜像源

在这里插入图片描述

主页传送门:📀 传送

概述


在这里插入图片描述

  npm致力于让 JavaScript 开发变得优雅、高效和安全。免费的 npm Registry 已成为 JavaScript 代码共享的中心,拥有超过一百万个软件包,是世界上最大的软件注册表。它是Node.js的标准包管理器,用于安装、共享和管理应用程序依赖关系,能解决NodeJS代码部署上的很多问题。也就是说,如果你想要在你的项目中引入一些库或工具,可以使用npm来快速安装。

常见使用场景:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器 下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

常用命令


  一些npm常用命令

  1. npm版本号
# 检测npm是否安装,以及查看npm安装的版本号
npm -v   
  1. npm升级
# 如果安装的是旧版本的npm,可以通过npm命令来升级
npm install npm -g 
  1. 临时使用镜像源
# 设置本次从淘宝镜像上安装需要的包,不改变npm原有的仓库镜像源
npm install -g <安装包名> --registry=https://registry.npm.taobao.org
# 安装package.json中所有的包,本次安装从设置的镜像中下载,不改变npm原有配置的仓库镜像
npm install --registry=https://registry.npm.taobao.org  
  1. 查看镜像源
# 查看当前本地npm配置的仓库镜像
npm config get registry
  1. 配置镜像源
# 配置本地npm的仓库镜像源地址,以后下载包,在下载命令中不配置镜像源时,就从上述配置的镜像源中下载指定的安装包
npm config set registry <https://....仓库镜像源地址># 也可以修改 ~/.npmrc 文件,加入下面内容
registry = https://registry.npm.taobao.org(<https://....仓库镜像源地址>)
  1. 使用cpnm
# 使用cnpm命令替换npm命令,$ cmpm install <包名>
npm install -g cnpm  --registry=https://registry.npm.taobao.org
  1. 安装指定包
#  加-g是全局安装指定的包,不加-g是本地本项目安装指定的包名
npm install <包名>   <-g>
  1. 报错解决
# 类似 " npm err ! Error: connect ECONNREFUSED 127.0.0.1:8087 " 的错误解决 (设置null 再重新设置镜像)
npm config set proxy null
npm config set https-proxy null 
npm config set registry <https://....仓库镜像源地址>
  1. 查看包
# 查看所有全局安装的包
npm -g list
  1. 卸载包
#  卸载某个包
npm uninstall  <包名>   ;
# 卸载所有的包
npm uninstall * 
  1. 查看依赖包是否存在
# 查看依赖包是否存在(用10的命令卸载某个包后,如果是卸载的/node_modules/目录下的包,可以通过此命令查看卸载的包是否还存在)
npm ls
  1. 更新某个包到最新版本
npm update  <包名>
  1. 升级指定包到指定版本
# 例如:npm install -g npm@18.15.0 ,升级npm 到18.15.0版本
npm install <-g>  <包名>@<版本号>
  1. 操作
# 在npm资源库中注册用户
npm adduser
# 登录用户
npm login
# 发布项目
npm publish
# 清除缓存
npm cache verify
npm cache clean --force
俩个命令都可

对比


  (本地安装与全局安装 )、(--save--save-dev)选项的区别 、对比及命令。

本地安装


  • 安装位置: 包会被安装在当前项目的 node_modules 目录下。
  • 作用: 本地安装的包通常是项目的依赖,只在该项目中可用。
  • 命令: npm install <package_name>

全局安装


  • 安装位置: 包会被安装在全局的 node_modules 目录下,通常在系统的全局路径中。
  • 作用: 全局安装的包可以在任何项目中使用,一般用于安装一些命令行工具或全局可用的模块。
  • 命令: npm install -g <package_name>
说明本地安装全局安装
安装位置当前项目的 node_modules 目录下全局的 node_modules 目录下(一般在系统全局路径)
作用项目的依赖(仅作用于当前项目)全局可用(一般用于安装一些命令行工具或全局可用的模块)
命令npm install <package_name>npm install -g <package_name>

--save (或 -S


  • 作用: 将包添加到 dependencies 中,标识该包为项目运行时的依赖。
  • 命令: npm install <package_name> --save

--save-dev (或 -D


  • 作用: 将包添加到 devDependencies 中,标识该包为开发时的依赖,仅在开发和测试阶段使用。
  • 命令: npm install <package_name> --save-dev
说明–save–save-dev
作用项目运行时依赖开发时的依赖(仅开发与测试阶段使用)
命令npm install <package_name> --savenpm install <package_name> --save-dev

示例:

  假设要安装一个名为 lodash 的包:

# 本地安装,作为项目的依赖
npm install lodash --save
# 或使用缩写
npm install lodash -S

  这会把 lodash 安装到项目的 node_modules 目录,并添加到 dependencies 中。

# 全局安装,作为系统的全局工具
npm install -g lodash

  这会把 lodash 安装到全局 node_modules 目录中,可以在整个系统中使用。

# 开发时安装,作为开发依赖
npm install lodash --save-dev# 或使用缩写
npm install lodash -D

  这会把 lodash 安装到项目的 node_modules 目录,并将其添加到 devDependencies 中,表示它是在开发阶段使用的依赖。

  通过使用 --save--save-dev,你可以清晰地区分项目运行时的依赖和开发时的依赖,而本地安装和全局安装则控制了包的作用范围。

镜像设置


  npm的官方镜像位于国外,有时候我们会在安装依赖的时候出现下载缓慢的情况,甚至有时候会出现安装失败的情况。为了解决这个问题,可以选择使用国内的npm镜像,以此来加快下载速度,保证依赖安装的成功率。也就是说NPM镜像是NPM的一个加速服务,用于提高NPM包的下载速度。

设置镜像方法


  使用命令行或者配置文件两种方法可以设置npm镜像。

  1. 使用命令行设置npm镜像
npm config set registry https://registry.npm.taobao.org

  将npm的镜像地址设置为淘宝的镜像,速度会比较快。

  1. 使用配置文件设置npm镜像
npm config edit

  用命令打开npm的配置文件,然后在里面设置npm的镜像。

registry=https://registry.npm.taobao.org/

  将registry设置为上面的镜像地址,保存后关闭即可。

示例:

 以淘宝镜像举例:1.临时使用npm --registry https://registry.npm.taobao.org install express2.一直使用npm config set registry https://registry.npm.taobao.org
验证是否成功:
npm config get registry 
或 
npm info express3.使用cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org
或
cnpm install express

切换回npm官方镜像


  在某些情况下,我们需要切换回npm的官方镜像。那么该如何做呢?也很简单,只需将registry这个参数设置为npm官方镜像即可。

npm config set registry https://registry.npmjs.org

选择镜像源


  虽然淘宝的npm镜像明显比npm官方镜像快很多,但是在某些情况下,我们还是需要选择其他的镜像源。

常见镜像源:

1、淘宝镜像: https://registry.npm.taobao.org
2、cnpmjs镜像: https://registry.nlark.com
3、npm官方镜像: https://registry.npmjs.org

其他镜像源:
  一些可能会用到的镜像:

cnpm --- http://r.cnpmjs.org/
eu ----- http://registry.npmjs.eu/
au ----- http://registry.npmjs.org.au/
sl ----- http://npm.strongloop.com/
nj ----- https://registry.nodejitsu.com/

  选择适合自己的源可以大大提高安装依赖的速度和成功率,推荐使用淘宝的npm镜像

在这里插入图片描述

  如果喜欢的话,欢迎 🤞关注 👍点赞 💬评论 🤝收藏  🙌一起讨论你的支持就是我✍️创作的动力!					  💞💞💞

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

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

相关文章

iOS——UIPickerView选择器

UIPickerView UIPickerView是 iOS 开发中常用的用户界面组件之一&#xff0c;用于在垂直方向上显示一个滚动的列表&#xff0c;用户可以通过滚动选择其中的一项。 UIPickerView的协议方法 UIPickerView和UItableView差不多&#xff0c;UIPickerView也要设置代理和数据源。UI…

fl studio2024试用版本如何汉化中文?

fl studio2024全称Fruity Loops Studio2024&#xff0c;这款软件也被人们亲切的称之为水果&#xff0c;它是一款功能强大的音乐创作编辑软件&#xff0c;拥有全功能的录音室&#xff0c;大混音盘以及先进的音乐制作工具&#xff0c;用户通过使用该软件&#xff0c;就可以轻松制…

2020年第九届数学建模国际赛小美赛B题血氧饱和度的变异性解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 B题 血氧饱和度的变异性 原题再现&#xff1a; 脉搏血氧饱和度是监测患者血氧饱和度的常规方法。在连续监测期间&#xff0c;我们希望能够使用模型描述血氧饱和度的模式。   我们有36名受试者的数据&#xff0c;每个受试者以1 Hz的频率连…

CSPNet: A New Backbone that can Enhance Learning Capability of CNN(2019)

文章目录 -Abstract1 Introduction2 Related workformer work 3 Method3.1 Cross Stage Partial Network3.2 Exact Fusion Model 4 Experiments5 Conclusion 原文链接 源代码 - 梯度信息重用&#xff08;有别于冗余的梯度信息&#xff09;可以减少计算量和内存占用提高效率&am…

C语言 文件操作

文章目录 前言文件概念文件名数据文件&程序文件文本文件&二进制文件文件缓冲区 文件操作FILE结构体文件指针文件打开&关闭文件输入/输出文件指针控制 前言 主要需要看的是概念部分、以及FILE结构体、文件指针部分。其余函数使用&#xff0c;知道其功能存在即可&am…

【SpringBoot】请求参数

1. BS 架构 BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 在SpringBoot进行web程序开发时&#xff0c;它内置了一个核心的Servlet程序 DispatcherServlet&#xff0c;称之为 核…

EasyExcel之文件导出最佳实践

文件导出 官方文档&#xff1a;写Excel | Easy Excel (alibaba.com) 引言 当使用 EasyExcel 进行 Excel 文件导出时&#xff0c;我最近在工作中遇到了一个需求。因此&#xff0c;我决定写这篇文章来分享我的经验和解决方案。如果你对这个话题感兴趣&#xff0c;那么我希望这篇…

c语言插入排序算法(详解)

插入排序是一种简单直观的排序算法&#xff0c;其主要思想是将一个待排序的元素插入到已经排好序的部分的合适位置。 插入排序的原理如下&#xff1a; 将序列分为两部分&#xff1a;已排序部分和未排序部分。初始时&#xff0c;已排序部分只包含第一个元素&#xff0c;未排序…

php 接入 百度编辑器

按照github上的操作下载百度编辑器的包后&#xff0c;根据文档上的步骤操作&#xff08;可能会遇到报错&#xff09;&#xff1a; 1、git clone 仓库 2、npm install 安装依赖&#xff08;如果没有安装 grunt , 请先在全局安装 grunt&#xff09; 我的是报了下面的错&#…

Leetcode 17 电话号码的字母组合

理解题意&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合 本质上&#xff1a;数字代表着一个字母集合 数字的个数决定了递归的深度&#xff0c;即树的深度 数字代表的字母组合决定了当前树的宽度。 1.暴力回溯 这里没有什么剪枝…

387.字符串中的第一个唯一字符 —> `size()`

解答&#xff1a; int firstUniqChar(string s) {int size s.size();// char count[26] { 0 };// error.1int count[26] { 0 };// for (int i 0; i < s.size() - 1; i) // error.2for (int i 0; i < size; i){count[s[i] - a] 1;}for (int i 0; i < size; i){…

Android 幸运转盘实现逻辑

一、前言 幸运转盘在很多app中都有&#xff0c;也有很多现实的例子&#xff0c;不过这个难度并不是如何让转盘转起来&#xff0c;真正的难度是如何统一个方向转动&#xff0c;且转到指定的目标区域&#xff08;中奖概率从来不是随机的&#xff09;&#xff0c;当然还不能太假&…

人类的耳朵:听觉的动态范围

作者&#xff1a;听觉健康 听觉的动态范围即可用的听力范围。在坐标系中&#xff0c;它可以表示为以听阈和最大舒适级为界形成的区域&#xff0c;其坐标轴分别为频率和声压级&#xff08;刺激持续时间在某种程度上对其产生影响&#xff09;。是什么因素决定了人类听力的极限&am…

Compilation failureFailure executing javac, but could not parse the error

记一次maven编译错误导致的打包失败问题。错误如下 Compilation failure Failure executing javac, but could not parse the error: javac: Ч ı :  ? : javac <options> <source files> -help г ܵ ѡ 排查路径如下&#xff1a; 1&#xff…

【MySQL】MySQL的varchar字段最大长度是65535?

在MySQL建表sql里,我们经常会有定义字符串类型的需求。 CREATE TABLE `user` ( `name` varchar(100) NOT NULL DEFAULT COMMENT 名字) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ; 比方说user表里的名字,就是个字符串。MySQL里有两个类型比较适合这个场景。 char和varchar。…

我尝试用 AI 来做数据分析,结果差强人意!

大家好&#xff0c;我是木川 工作中经常会需要分析数据 1、统计分析&#xff0c;计算某项指标的均值、分位数、标准差等 2、相关性分析&#xff0c;比如分析销售额与顾客年龄、顾客性别、促销活动等的相关性 3、可视化分析&#xff0c;比如绘制柱状图、折线图、散点图等 有了 A…

几种排序的实现

直接插入排序 直接插入排序是一种简单的插入排序法&#xff0c;其基本思想是&#xff1a; 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&#xff0c;得到一个新的有序序列 。 实际中我们玩扑克牌时&#xff…

交付《啤酒游戏经营决策沙盘》的项目

感谢首富客户连续两年的邀请&#xff0c;交付《啤酒游戏经营决策沙盘》的项目&#xff0c;下周一JSTO首席学习官Luna想让我分享下系统思考与投资理财&#xff0c;想到曾经看过的一本书《深度思维》&#xff0c;看到一些结构来预判未来。不仅仅可以应用在企业经营和组织发展上&a…

Uncaught SyntaxError: Unexpected end of input (at manage.html:1:21) 的一个解

关于Uncaught SyntaxError: Unexpected end of input (at manage.html:1:21)的一个解 问题复现 <button onclick"deleteItem(${order.id},hire,"Orders")" >delete</button>报错 原因 函数参数的双引号和外面的双引号混淆了&#xff0c;改成…

【vuex】

vuex 1 理解vuex1.1 vuex是什么1.2 什么时候使用vuex1.3 vuex工作原理图1.4 搭建vuex环境1.5 求和案例1.5.1 vue方式1.5.2 vuex方式 2 vuex核心概念和API2.1 getters配置项2.2 四个map方法的使用2.2.1 mapState方法2.2.2 mapGetters方法2.2.3 mapActions方法2.2.4 mapMutations…