【Node.js】笔记整理 3 -npm

写在最前:跟着视频学习只是为了在新手期快速入门。想要学习全面、进阶的知识,需要格外注重实战和官方技术文档,文档建议作为手册使用

系列文章

  • 【Node.js】笔记整理 1 - 基础知识
  • 【Node.js】笔记整理 2 - 常用模块
  • 【Node.js】笔记整理 3 - npm
  • 【Node.js】笔记整理 4 - node版本管理工具 nvm
  • 【Node.js】笔记整理 5 - Express框架简单入门
  • 【Node.js】笔记整理 6 - MongoDB
  • 【Node.js】笔记整理 7 - mongoose

本文目录

  • 系列文章
    • 1、npm包相关命令
    • 2、require引入npm模块
    • 3、环境变量path
    • 4、npm配置命令别名
    • 5、镜像源
      • 5.1、安装镜像源
      • 5.2、配置镜像源
    • 6、yarn 包管理工具
    • 7、包管理工具的选择、判定
    • 8、npm包的发布、更新、删除
      • 8.1 制作并发布包
      • 8.2、 更新包
      • 8.3、删除包
    • 9、其他语言或者OS的包管理工具

node提供的包管理工具是npm —— Node Package Manager,不过yarn最稳定

使用命令npm init -y可以快速创建package.json文件

1、npm包相关命令

搜索npm包的网址:www.npmjs.com,需要魔法上网

npm命令(以下 i 都是 install 的简写)功能
npm install <包名>npm i <包名>下载对应包,默认下载最新版本
npm uninstall <包名>npm r <包名>npm remove <包名>卸载包
npm i -S <包名>npm i --save <包名>(默认)安装在生产环境下,包信息存储在package.jsondependencies属性下
npm i -D <包名>npm i --save-dev <包名>安装在开发环境下,包信息存储在package.jsondevDependencies属性下
npm i -g nodemon使用 -g 进行全局安装,这将会让你在命令行任何位置都能够使用这个包
npm root -g查看全局安装包的位置,注意全局安装包不是安装在你项目里的
**npm i **、npm install根据package.jsonpackage-lock.json安装该项目所需的所有依赖
npm i <包名>@x.xx.xx安装指定版本的包
npm uninstall <包名>@x.xx.xx卸载指定版本的包
**npm r -g <包名> **、npm remove -g <包名>全局卸载包
npm init初始化
npm run <别名>运行别名

2、require引入npm模块

  • 先npm install <包名>安装npm包
  • const xxx = require('包名')引入,注意:这种安装方式,会从node_modules开始一直向上查找指定包直到所在盘根目录
  • 使用

依赖:A包中安装了B包,那么B包就是A包的一个依赖包,称作A依赖B

  • 开发依赖:只在开发阶段使用的依赖包
  • 生产依赖:在开发阶段和最终上线运行都会使用的依赖包

3、环境变量path

将文件路径复制到我的电脑 --> 属性 --> 高级系统设置 --> 环境变量 --> 用户变量 --> PATH中,就可以在命令行任意位置使用该命令。这是因为配置到环境变量PATH中后,使用命令时就会去环境变量中查找路径

4、npm配置命令别名

package.json文件中的"script配置项下",按照这种语法配置别名:"别名": " 指令 "

比如:

{"script": {"serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",}
}

其实有些包在安装时候或者项目初始化时候,一些别名就已经配置好了

在这里插入图片描述

5、镜像源

因为npm包放在外网服务器,有些时候下载可能会比较慢甚至中断下载报警,所以为了提高下载速度,有些时候需要用到国内一些公司部署的镜像源、比如淘宝源

5.1、安装镜像源

安装淘宝源:

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

指令其实就是把npm换成cnpm就行,其他镜像源的安装参照这个就行

5.2、配置镜像源

1、直接配置:

npm config set registry http://registry.npmmirror.com

2、使用nrm配置npm的镜像地址

  • 安装nrm

    npm i -g nrm
    
  • 修改镜像

    nrm use taobao
    
  • 检测是否配置成功

    npm config list
    
  • 查看配置的镜像源

    # 方法一:只有地址
    npm config get registry# 方法二:名字+地址
    nrm ls
    

6、yarn 包管理工具

yarn是Facebook(现mate)推出的JavaScript包管理工具

它的优点:

  • 速度更快:缓存每个下载过的包、并行下载、更大的资源利用率
  • 更安全:执行代码前,yarn会通过算法检验每个安装包的完整性
  • 更可靠:使用了详细、简洁的锁文件格式和明确的安装算法

安装

npm i -g yarn

启动项目时候,npm需要npm run dev,yarn只需要yarn dev

功能指令
初始化yarn inityarn init -y
安装yarn add <包名>yarn add <包名> --dev生产依赖、**yarn global add <包名>**全局安装
删除yarn remove <包名>、**yarn global remove <包名>**全局删除
安装项目依赖**yarn **
运行命令别名yarn <别名>

7、包管理工具的选择、判定

个人项目无所谓

公司项目:

  • npm的锁文件为package-lock.json
  • yarn的锁文件为yarn.lock

包管理工具不要在同一个项目里混用,以防意外

8、npm包的发布、更新、删除

8.1 制作并发布包

流程如下:

  • npm init

  • 给包命名,注意不能有test等字样,否则会被识别为垃圾包不予发布

  • 编写自己的npm包

下面是一个npm包的例子

/*** vertify if two one-dimensional arrays are identical* @param {Array} arr1 * @param {Array} arr2 * @returns Boolean*/
function isArrEqual(arr1, arr2){return arr1 && arr2 && arr1.length === arr2.length && arr1.every((item) => arr2.includes(item))
}/*** array deduplication* @param {Array} arr1*/
function removeDuplicates(arr){return [...new Set(arr)]
}module.exports = {isArrEqual,removeDuplicates
}
  • 登录npm官网,注册并激活账号

  • nrm use npm,使用官方镜像

  • npm login,填写用户相关信息登录,输入密码时默认不可见

  • npm publish提交包

  • 成功后便可以像其他包那样下载下来使用了

8.2、 更新包

  • 在本地更新代码
  • 修改package.json中的版本信息
  • npm publish发布

8.3、删除包

包可以被删除的条件:

  • 你是作者
  • 包的发布时间小于24h
  • 若大于24h,没有其他包依赖于此包,且每周小于300下载量,且维护者唯一

删除命令:npm unpublishnpm unpublish --force

9、其他语言或者OS的包管理工具

语言包管理工具
PHPcomposer
Pythonpip
Javamaven
Gogo mod
JavaScriptnpm / yarn / cnpm / …
RubyrubyGems
操作系统包管理工具
Centosyum
Ubuntuapt
MacOshomebrew
Windowschocolatey

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

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

相关文章

Redis--14--BigKey 和 热点Key

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 BigKey1.什么是bigkey2.bigkey的危害3.发现bigkeyscan 4.解决bigkey 什么是热点Key&#xff1f;该如何解决1. 产生原因和危害原因危害 2.发现热点key预估发现客户端…

深入理解贝叶斯分类与朴素贝叶斯模型(Naive Bayes, NB):从基础到实战

目录 贝叶斯分类 公式 决策规则 优点 贝叶斯分类器的例子——垃圾邮件问题 1. 特征&#xff08;输入&#xff09;&#xff1a; 2. 类别&#xff1a; 3. 数据&#xff1a; 4. 模型训练&#xff1a; 注&#xff1a;类别先验概率 5. 模型预测&#xff1a; 朴素贝叶斯模…

基于SSM框架开发的酒店后台管理系统

基于SSM框架开发的酒店后台管理系统 文章目录 基于SSM框架开发的酒店后台管理系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 酒店管理系统是一个集客房预订、前台管理、客户服务、财务管理等功能于一体的综合性软件系统。它能够帮助酒店高效地…

爬虫-xpath篇

1.xpath的基础语法 表达式描述nodename选中该元素/从根节点选取、或者是元素和元素间的过渡//从匹配选择的当前节点选择文档中的节点&#xff0c;而不考虑它们的位置.选取当前节点…选取当前节点的父节点选取属性text()选取文本 举例&#xff1a; 路径表达式结果html选择html元…

shell编程系列(10)-使用paste拼接列

使用paste拼接列 前言使用paste拼接列拼接两个文件 结语 前言 在前面的文章中讲解了使用cut命令选择列&#xff0c;这篇文章我们介绍使用paste命令拼接列&#xff0c;其实这个命令的使用场景很有限&#xff0c;做科研的同学可能才会用到&#xff0c;但是却非常好用&#xff0c…

游戏被流量攻击会有什么样的影响,该用什么样的防护方式去处理

德迅云安全-领先云安全服务与解决方案提供商德迅云游戏盾专门针对游戏进行防护&#xff0c;可免费提供防护方案~ 如果游戏被流量攻击会产生以下影响&#xff1a; 服务器过载&#xff1a;流量攻击会导致游戏服务器接收到的请求数量急剧增加&#xff0c;超出服务器的处理能力。这…

vue3中如何实现事件总线eventBus

使用插件 由于vue3中 “$ on”&#xff0c;$ off 和 $ once 实例方法已被移除&#xff0c;组件实例不再实现事件触发接口 所以我们可以使用官方推荐的这个第三方库实现同样的效果 mitt https://github.com/developit/mitt 安装 pnpm install mitt -S挂载全局写法 main.ts 初始…

网络编程之套接字

端口 && IP 在学习套接字编程之前&#xff0c;我们必须了解一下前缀知识。首先是IP和端口的作用。 在这之前&#xff0c;我们要明白一件事。那就是把数据从一台主机发送到另一台主机&#xff0c;是目的吗&#xff1f;&#xff1f;&#xff1f;当然不是&#xff01;&a…

socket.io介绍

1. 使用的技术 Socket.IO 是一个封装了 Websocket、基于 Node 的 JavaScript 框架&#xff0c;包含 client 的 JavaScript 和 server 的 Node。其屏蔽了所有底层细节&#xff0c;让顶层调用非常简单。 另外&#xff0c;Socket.IO 还有一个非常重要的好处。其不仅支持 WebSocket…

leetcode:232. 用栈实现队列

一、题目 原题链接&#xff1a;232. 用栈实现队列 - 力扣&#xff08;LeetCode&#xff09; 函数原型&#xff1a; typedef struct //我的队列结构定义 { } MyQueue; MyQueue* myQueueCreate() //我的队列创建及其初始化 void myQueuePush(MyQueue* obj, int x) //我的队…

生成对抗网络——研讨会

时隔一年&#xff0c;再跟着李沐大师学习了GAN之后&#xff0c;仍旧没能在离散优化中实现通用的应用&#xff0c;实在惭愧&#xff0c;借着组内研讨会的机会&#xff0c;再队GAN的前世今生做一个简单的综述。 GAN产生的背景 目前与GAN相关的应用 去reddit社区的机器学习板块…

〖大前端 - 基础入门三大核心之JS篇㊺〗- 定时器和延时器

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;不渴望力量的哈士奇(哈哥)&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

基于helm的方式在k8s集群中部署gitlab - 升级(三)

接上一篇 基于helm的方式在k8s集群中部署gitlab - 部署&#xff08;一&#xff09;&#xff0c;本篇重点对gitlab在k8s集群中进行升级 文章目录 1. gitlab 升级1.1 获取release1.2 下载目前版本的gitlab charts1.3 获取当前的values文件1.4 升级 2. gitlab数据库升级2.1 备份数…

力扣题:字符串的反转-11.22

力扣题-11.22 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;541. 反转字符串 II 解题思想&#xff1a;进行遍历翻转即可 class Solution(object):def reverseStr(self, s, k):""":type s: str:type k: int:rtype: str"&quo…

简单搭建Python开发环境

Python环境安装 Python官网: Welcome to Python.org 1. 选择Python3.x版本下载&#xff0c;建议使用稳定版3.9.13&#xff08;Stable Releases&#xff09;&#xff0c;绝大数库对3.9版本Python已良好支持&#xff0c;但对3.10及以上支持不完全&#xff1a; https://www.…

SSM框架(六):SpringBoot技术及整合SSM

文章目录 一、概述1.1 简介1.2 起步依赖1.3 入门案例1.4 快速启动 二、基础配置2.1 三种配置文件方式2.2 yaml文件格式2.3 yaml读取数据方式&#xff08;3种&#xff09; 三、多环境开发3.1 yml文件-多环境开发3.2 properties文件-多环境开发3.3 多环境命令行启动参数设置3.4 多…

2023年腾讯云双12优惠活动整理汇总

2023年双12腾讯云推出了年末感恩回馈活动&#xff0c;年度爆款2核2G4M云服务器118元/年&#xff0c;新老用户同享&#xff0c;还可领取总面值2000元代金券&#xff0c;老用户服务器续费4折起。本文为大家整理汇总腾讯云双12优惠活动。 活动地址&#xff1a; 点此直达腾讯云双1…

JOSEF 快速中间继电器 KZJ-4H-L DC220V 导轨安装

快速中间继电器KZJ-4H-LDC220V导轨安装导轨安装是广泛用于电力系统&#xff0c;能够断货开或开通大负载&#xff0c;并且具有较强的断弧能力&#xff0c;适用于交流50/60Hz。电压24380V,直流电压24280V自动控制电路中以增加保护和控制回路的触点数量与触点容量。 KZJ系列快速中…

“B2B+OMS方案”,赋能家电巨头构建BC订单一体化能力,促进业务增长|徐礼昭

某国际知名家电电器品牌&#xff0c;年营收超过5000亿元。该电器企业其整体业务分三大类&#xff1a;线上线下B2B2C业务、线下B2B业务以及DTC零售业务。 随着业务的发展&#xff0c;该电器品牌对2B业务及DTC业务的数字化系统能力支撑需要更加全面和立体&#xff0c;以适应业务…

【Matlab】如何快速入门一项新技能-以Matlab/Simulink入门为例

目录 1. 引言 2. 背景 3. 快速学习并完成开发 3.1 了解需求&#xff0c;知道要干什么 3.2 了解Matlab/Simulink基本功能 第一步&#xff0c;查看Matlab的中文网站中文网站https://www.ilovematlab.cn/resources/对Matlab/Simulink有了一个初步认识。 3.3 实现一个最简单…