Node.js基础---npm与包

news2025/2/25 15:26:27

 包

        概念:Node.js 中的第三方模块又叫做包

        来源:由第三方个人或团队开发出来的,免费使用,且为开源

        为什么需要:Node.js的内置模块只有一些底层API,开发效率低

                              包是基于内置模块封装出来的,提供更高级方便的API,提高开发效率

                              包和内置模块之间的关系,类似于 JQuery 和 浏览器内置API 之间的关系

        下载: https://www.npmjs.com/  全球最大包共享平台  ---搜索

                    https://registry.npmjs.org/   ---下载

                    使用包管理工具  npm   (查看版本号:在终端执行  npm-v

npm

        格式化时间传统做法:

             

        使用npm包实现

                

        

安装包

安装指定包

npm install 包的完整名称

简写  npm i xxxx

初次安装包,多的文件有两个 node_modules 的文件夹和 package-lock.json 的配置文件

node_modules 文件夹                用来存放所有已安装到项目的包

package-lock.json 配置文件       记录 node 文件夹目录下每个包的下载信息(包的名字、版本号、下载地址)

注意:不需要改动文件内代码!!!

安装指定版本

        默认情况是安装最新版本,如果需要安装指定版本 需要在包名后通过 @ 符号指定具体版本

npm i xxxx@3.33.3

语义化版本规范

        版本号是以  点分十进制 形式定义  总共三位,例如:2.24.1

        每一位数字代表含义如下:1、大版本   2. 功能版本   3. Bug修复版本

包管理配置文件

        npm规定在项目根目录,必须要有 package.json 的包管理配置文件,记录与项目有关的配置信息。如:

        

1. 多人协作 

        团队项目中 node_modules 体积过大,不方便共享源代码

        解决方法:共享时剔除 node_modules 文件夹

2. 如何记录项目安装的包

        项目根目录,创建 package.json 文件,记录

        注意:项目开发,把 node_modules 添加到 .gitignore 忽略文件内

3. 快速创建 package.json文件

        快捷命令,执行命令所处的目录

        npm init -y

        注意:1. 命令只能在英文目录下,项目文件夹名不能有中文和空格

                   2. 安装包时会自动把信息加入package内

4. dependencies 节点

        专门记录安装过那些包

5. 一次性安装所有包

        拿到一个剔除了 node_modules 的项目,首先要把依赖的包下载下来

        npm install   或   npm i         下载全部的包

6. 卸载包

        npm uninstall xxxx(包名)

        注意:执行成功后 package.json 内对应的信息也会去除

7. devDependencies 节点

        只在开发阶段用到的包,建议记录到 devDependencies 节点

        在开发和上线都要用到的,建议记录到 dependencies 节点

        使用如下命令记录到 dev...

    npm i 包名 -D                                简写

    npm install 包名 --save-dev      完整写法

解决下包速度慢问题

原因:npm 在国外...

解决方法:淘宝NPM镜像服务器

切换npm下包镜像源:

# 查看当前下包镜像源
npm config get registry
# 切换为淘宝镜像源
npm config set registry=https://registry.npm.taobao.org、
# 检查是否成功
npm config get registry

nrm工具快速切换镜像源

包的分类

项目包

        被安装到 node_modules 的包

        分两类:

                开发依赖包(开发期间用)

                核心依赖包(开发线上都用)

全局包

        执行 npm i 时,提供  -g 参数,则安装的是全局包

        会安装到c盘下

        安装和卸载和之前一样  但要在后面加上  -g

        注意:工具性质的包才有全局安装的意义,因为提供了好用的终端命令

                   看官方文档判断是否需要全局安装才能使用

i5ting_toc

        可以把 md 文档转换成 html文件的小工具

        

规范的包结构

       

开发属于自己的包

1. 需要实现的功能

2. 初始化包的基本结构

        1. 新建文件夹为根目录

        2. 新建三个文件(管理配置,入口文件,说明文档)

3. 初始化 package.json

4. 在index.js定义方法

5. 将不同的功能进行模块化拆分

6. 编写包的说明文档

        包含:安装方式、导入方式、对应封装的功能、开源协议...

发布包

1. 注册 npm 账号

2. 登录 npm 账号

        注册完成后,在终端内执行 npm login 命令

        依次输入 用户名、密码、邮箱后登录成功

        注意:在运行命令前要把下包的服务器切换成 npm 官方

3. 把包发布到 npm 上

        将终端切换到根目录,运行 npm publish,即可发布(包名不能雷同)

4. 删除已发布的包

        运行 npm unpublish 包名 --force ,即可删除

        注意:

                

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

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

相关文章

express+mysql+vue,从零搭建一个商城管理系统6--数据校验和登录

提示:学习express,搭建管理系统 文章目录 前言一、修改models/user.js二、修改routes下的user.js三、Api新建user/login接口四、删除数据库原有数据,添加新验证规则的用户四、用户登录总结 前言 需求:主要学习express,…

IP源防攻击IPSG(IP Source Guard)

IP源防攻击IPSG(IP Source Guard)是一种基于二层接口的源IP地址过滤技术,它能够防止恶意主机伪造合法主机的IP地址来仿冒合法主机,还能确保非授权主机不能通过自己指定IP地址的方式来访问网络或攻击网络。 2.1 IPSG基本原理 绑定…

c# 广度优先搜索(Breadth-First Search,BFS)

在这篇文章中我将讨论用于树和图的两种遍历机制之一。将使用 C# 示例介绍广度优先搜索 (BFS)。图是最具挑战性和最复杂的数据结构之一。 广度优先搜索的工作原理:广度优先搜索 (BFS)是一种探索树或图的方法。在 BFS 中,您首先探索…

Mac 重新安装系统

Mac 重新安装系统 使用可引导安装器重新安装(可用于安装非最新的 Mac OS,系统降级,需要清除所有数据) 插入制作好的可引导安装器(U盘或者移动固态硬盘),如何制作可引导安装器将 Mac 关机将 Ma…

【多智能体】MetaGPT配置教程(应用智谱AI的GLM-4)

MetaGPT配置教程(使用智谱AI的GLM-4) 文章目录 MetaGPT配置教程(使用智谱AI的GLM-4)零、为什么要学MetaGPT一、配置环境二、克隆代码仓库三、设置智谱AI配置四、 示例demo(狼羊对决)五、参考链接 零、为什么…

Appium手机Android自动化

目录 介绍 什么是APPium? APPium的特点 环境准备 adb(android调试桥)常用命令 appium图形化简单使用 连接手机模拟器 使用appium桌面端应用程序 ​编辑 整合java代码测试 环境准备 引入所需依赖 书写代码简单启动 ​编辑 Appium元素定位 id定位 介…

unity自定义着色器基础

这些内置渲染管线的着色器示例演示了编写自定义着色器的基础知识,并涵盖了常见的用例。 有关编写着色器的信息,请参阅编写着色器。 设置场景 第一步是创建一些用于测试着色器的对象。在主菜单中选择 Game Object > 3D Object > Capsule。然后&a…

AMEYA360:广和通5G智能模组SC171支持Android、Linux和Windows系统,拓宽智能物联网应用

世界移动通信大会2024期间,广和通宣布:5G智能模组SC171除支持Android操作系统外,还兼容Linux和Windows系统,帮助更多智能终端客户快速迭代产品,拓宽智能化应用覆盖范围。 广和通SC171系列基于高通QCM6490物联网解决方案…

2022年下半年教师资格证考试《综合素质》(中学)题

1.一位肖老师认为:“教师在教学中不能只关注学科层面的知识,还要爱学生,建立和谐的师生关系”。她在日常工作中以此为行动指南,这表明肖老师所处的教师专业发展阶段是( B)。 A“虚拟关注”阶段 B“自我更新…

ubuntu22.04工具整理以及安装使用方式

截图工具 火焰截图 安装: sudo apt install flameshot增加自定义快捷键: 然后就可是使用是指的快捷键进行截图了。 如果没有在截图上编辑的需要,其实自带的截图也够用的。

这可能是你少有的能get到测试用例编写精髓的机会!

自动化测试用例的编写是实现项目自动化的核心,合理的用例设计是保证自动化效益和实用性的关键,也直接决定了自动化脚本是否具备可扩展和可维护性。由此,本篇文章主要为大家介绍了测试用例编写的规范和注意事项。 一、自动化测试用例选择 自…

如何在宝塔面板中设置FTP文件传输服务并实现远程文件管理

文章目录 1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固定FTP地址连接 宝塔FTP是宝塔面板中的一项功能,用于设置和管理FTP服务。通过宝塔FTP,用户可以创建FTP账号,配置FTP用户权限…

APRISO的低代码能力降低MOM系统全生命周期成本

前言 进入21世纪以来企业之间的竞争发生了巨大的变化,特别是近10年来,客户对产品的需求逐渐多样化,制造企业的生产模式也开始由大批量的刚性生产变为了多品种、小批量的柔性生产模式,生产线也从以前的手工方式转为了以自动化的机…

【软考高项】【计算专题】- 6 - 成本类 - 挣值管理

目录 一、知识点 1、基础概念 1.1 教材定义 1.2 理解方式 方式一:使用公式理解 方式二:使用语言描述 2、总结 2.1 三个参数 2.2 四个指标 2.3 其他关键参数 二、真题举例 高级2014年下半年案例分析试题 【问题1】 【问题2】 【问题3】 一…

将任何网页变成桌面应用,全平台支持 | 开源日报 No.184

tw93/Pake Stars: 20.9k License: MIT Pake 是利用 Rust 轻松构建轻量级多端桌面应用的工具。 与 Electron 包大小相比几乎小了 20 倍(约 5M!)使用 Rust Tauri,Pake 比基于 JS 的框架更轻量和更快内置功能包括快捷方式传递、沉浸…

【Python 数据分析 实战案例】通过用户和订单的数据分析,制定营销策略

在互联网行业中,电子商务领域绝对是数据分析用途最多的地方,各大电商平台都依赖数据分析帮助其挖掘用户订单增长机会。比如某宝的随手买一件,核心思路也就是根据用户的日常浏览内容及停留时间,以及订单的关联度来进行推荐的。 本…

秒杀小程序怎么做_尽享指尖上的超值优惠!

秒杀小程序:掀起购物狂潮,尽享指尖上的超值优惠! 在当下数字化、信息化的社会里,购物方式也在不断地变革和升级。其中,秒杀小程序以其独特的魅力和便捷性,逐渐成为了众多消费者热衷的购物渠道。那么&#…

1854034-70-0,Bis-Sulfone-PEG4-DBCO,能够与蛋白质上的多组氨酸缀合

您好,欢迎来到新研之家 文章关键词:1854034-70-0,Bis-Sulfone-PEG4-DBCO,双巯基磺酸四聚乙二醇二苯基环辛炔 一、基本信息 【产品简介】:Bis Sulfone PEG4 DBCO contains disulfide groups, which gives it a uniqu…

SI522一款兼容RC522/FM17522 开发资料

SI522 是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员。是NXP 公司针对"三表"应用推出的一款低 电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携 式手持设备研发的较好选择。 SI522利用了先进的调制和解调概念,完…

【Qt学习】多元素控件:QListWidget、QTableWidget 的介绍与使用

文章目录 1. QListWidget1.1 介绍1.2 使用 - 如何添加项目1.3 实例1.4 资源文件 2. QTableWidget2.1 介绍2.2 使用 - 添加项目的方式2.3 实例2.4 资源文件 3. QTreeWidget3.1 介绍3.2 使用 - 添加数据的方式3.3 实例3.4 资源文件 1. QListWidget 1.1 介绍 QListWidget 是 Qt …