Node.js基础---npm与包

 包

        概念: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.rhkb.cn/news/268310.html

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

相关文章

FPGA高端项目:FPGA基于GS2971的SDI视频接收转HDMI输出,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收HLS动态字符叠加输出应用本方案的SDI接收HLS多路视频融…

【详识JAVA语言】抽象类和接口

抽象类 抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 比如:…

一文搞懂浏览器缓存机制

文章目录 概述强制缓存协商缓存总结参考文章 概述 浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是根据HTTP报文的缓存标识进行的 浏览器第一次向服务器发送HTTP请求, 浏览器拿到请求结果后,会根据响应报文的缓存标识,决定是否进行缓存…

Web元素定位工具-ChroPath

往往Selenium元素定位需要知道具体元素的位置准确定位,一步一步找元素的位置很麻烦并且费时。今天介绍一款辅助定位web网站元素位置的插件ChroPath由此很有用,本文将介绍ChroPath完整版安装和使用(含插件包),让seleniu…

数据结构与算法-冒泡排序

引言 在数据结构与算法的世界里,冒泡排序作为基础排序算法之一,以其直观易懂的原理和实现方式,为理解更复杂的数据处理逻辑提供了坚实的入门阶梯。尽管在实际应用中由于其效率问题不常被用于大规模数据的排序任务,但它对于每一位初…

机器学习周报第31周

目录 一、论文阅读1.1 论文标题1.2 论文摘要1.3 论文背景1.4 提出的系统:MAER1.4.1 基于Asyncio的预处理1.4.2 多模态信号下的情感识别1.4.3 针对情感不匹配情况的自适应融合 一、论文阅读 1.1 论文标题 Beyond superficial emotion recognition: Modality-adapti…

Jmeter 安装

JMeter是Java的框架,因此在安装Jmeter前需要先安装JDK,此处安装以Windows版为例 1. 安装jdk:Java Downloads | Oracle 安装完成后设置环境变量 将环境变量JAVA_HOME设置为 C:\Program Files\Java\jdk1.7.0_25 在系统变量Path中添加 C:\Pro…

VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行

VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行功能,即滚动 UI 显示当前源代码范围。便于在代码行数比较多的时候更好的知道自己所在的位置。粘性滚动UI 显示用户在滚动期间所处的范围,将显示编辑器顶部所在的类/接口/命名空间/函数/方法/构造函数&a…

Dell R730 2U服务器实践3:安装英伟达上代专业AI训练Nvidia P4计算卡

Dell R730是一款非常流行的服务器,2U的机箱可以放入两张显卡,这次先用一张英伟达上代专业级AI训练卡:P4卡做实验,本文记录安装过程。 简洁步骤: 打开机箱将P4显卡插在4号槽位关闭机箱安装驱动 详细步骤: 对…

【java-面试题】链表刷题

【java-面试题】链表刷题 1. 删除链表中等于给定值 val 的所有节点(最多遍历链表一遍)题目思路代码 2. 反转一个单链表(就地反转) 1. 删除链表中等于给定值 val 的所有节点(最多遍历链表一遍) 力扣链接&am…

基于JSON的Ollama和LangChain agent

到目前为止,我们都可能意识到,通过为LLMs提供额外的工具,我们可以显著增强它们的功能。 例如,即使是ChatGPT在付费版本中也可以直接使用Bing搜索和Python解释器。OpenAI更进一步,为工具使用提供了经过优化的LLM模型&am…

GIT 卸载干净(图文详解)

一、控制面板卸载 右击卸载 等待卸载过程 二、在环境变量,把相关信息删除干净

巧妙解决接口测试产生脏数据问题

测试数据创建后需要对其删除,不然可能产生脏数据,对开发和测试、生产环境造成一定影响。 其接口框架是基于Python,API规范基于REST。 产生原因 改进前:清除资源的操作放在每个正向测试用例里,没有在setUp和tearDown…

使用 MongoDB Atlas 无服务器实例更高效地开发应用程序

使用 MongoDB Atlas无服务器实例更高效地开发应用程序 身为开发者,数据库并不一定需要您来操心。您可不想耗费时间来预配置集群或调整集群大小。同样地,您也不想操心因未能正确扩展而导致经费超标。 MongoDB Atlas 可为您提供多个数据库部署选项。虽然…

Vue路由(黑马程序员)

路由介绍 将资代码/vue-project(路由)/vue-project/src/views/tlias/DeptView.vue拷贝到我们当前EmpView.vue同级,其结构如下: 此时我们希望,实现点击侧边栏的部门管理,显示部门管理的信息,点击员工管理,显…

Vision Pro开发者学习路线

官方给到的Vision Pro开发者学习路线: 1. 学习基础知识: - 学习 Xcode、Swift 和 SwiftUI 的基础知识,包括语法、UI 设计等。 - 掌握 ARKit 和 SwiftUI 的使用,了解如何创建沉浸式增强现实体验。 2. 学习 3D 建模&#xf…

【latex】\IEEEpubid版权声明与正文内容重叠

问题描述 撰写IEEE Trans论文时,出现版权声明文字\IEEEpubid与正文内容重叠的问题: 原因分析: 在使用模板时,不小心将以下命令删除了: \IEEEpubidadjcol 解决方案: 在需要换页的位置附近添加以上命令&…

Appium自动化测试环境搭建

1、Appium简介 Appium是一个开源的,适用于原生或混合移动应用( hybrid mobile apps )的自动化测试平台,Appium应用WebDriver: JSON wire protocol驱动安卓和iOS移动应用。 2、环境配置 (1) 配置java环境 首先安装jdk。安装完成后新建用户…

【算法大家庭】动态规划算法

目录 🧂1.动态规划思想 🌭2.背包问题思路分析 🍿3.代码实现 1.动态规划思想 将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的 2.背包问题思路分…

德人合科技 | 天锐绿盾终端安全管理系统

德人合科技提到的“天锐绿盾终端安全管理系统”是一款专业的信息安全防泄密软件。这款软件基于核心驱动层,为企业提供信息化防泄密一体化方案。 www.drhchina.com 其主要特点包括: 数据防泄密管理:天锐绿盾终端安全管理系统能够确保数据在创…