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.hqwc.cn/news/498550.html

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

相关文章

【MATLAB】 小波分解信号分解+FFT傅里叶频谱变换组合算法

有意向获取代码,请转文末观看代码获取方式~ 展示出图效果 1 小波分解算法 小波分解算法是一种数学方法,用于将信号分解为不同频率的小波成分。这种算法基于小波函数,可以用于信号处理、图像压缩和数据压缩等领域。小波分解算法的基本思想是…

视频学习胜过读书吗

现在,网上的课程视频和讲座视频,越来越多。同样的内容,可以读书学习,也可以视频学习,大家喜欢哪一种? 我比较喜欢读书,实在没耐心视频学习。 书籍只要随手一翻,就知道大概的内容了&…

【活动】前端世界的“祖传代码”探秘:从古老魔法到现代重构

作为一名前端工程师,我时常在项目中邂逅那些被岁月打磨过的“祖传代码”。它们就像古老的魔法书页,用HTML标签堆砌起的城堡、CSS样式表中的炼金术,以及JavaScript早期版本中舞动的符咒。这些代码承载着先驱们的探索精神和独特智慧&#xff0c…

戏说c语言: 阶段性总结二

前言 师弟:“师兄,我终于和我喜欢的女生在一起了。感谢师兄呀。” 我:“恭喜啊,师弟!” 师弟:“这要全靠这段学习c的缘分了啊,两个人没事交流c语言,一起去上课,共同成长…

Fastadmin点击搜索赋值给下拉列表

业务场景描述 输入核销码,点击搜索,下拉列表展现出订单的所有项目 实现逻辑: 给add.html的js里面,给搜索按钮绑定单击事件 add: function () {//绑定单机事件$("#ss").click(function(){//点击之后,获取核…

六、OpenAI之嵌入式(Embedding)

嵌入模式 学习怎么将文本转换成数字,解锁搜索等案例。 新的嵌入模型 text-embedding-3-small 和 text-embedding-3-large,是目前最新的并且性能最好的嵌入模型,成本低,支持多语言,拥有控制所有大小的新参数 1. 什么是…

Codeforces Round 929 (Div. 3)

Codeforces Round 929 (Div. 3) Codeforces Round 929 (Div. 3) A. Turtle Puzzle: Rearrange and Negate 题意:可以对整数数组进行两个操作,一是随意重新排列或保持不变,二是选择连续子段元素符号倒转,求可能最大的所有元素和…

win11开启IPV6并手动设置地址

win11开启IPV6并手动设置地址 ipv6手动设置 假设你想要配置的IPv6地址是2001:0db8:85a3:0000:0000:8a2e:0370:7334,子网前缀长度为64位,并且默认网关是2001:0db8:85a3::1。 手动配置IPv6地址的示例步骤(Windows操作系统)&#x…

[云原生] k8s之pod容器

一、pod的相关知识 1.1 Pod基础概念 Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理…

基于springboot+vue的保险信息网站(源码+论文)

文章目录 文章目录 前言 一、功能设计 二、功能实现 2.1 前台功能设计 2.1.1 网站首页 2.1.2 保险产品列表 2.1.3 留言板界面 2.1.4 产品查询界面 2.2后台管理设计 2.2.1 系统用户登录管理 三、库表设计 四、论文 前言 随着互联网的不断发展,现在人们获…

IP源防攻击IPSG(IP Source Guard)

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

网络:IPv6

1、由于IPv4地址资源枯竭,所以产生了IPV6。 版本长度地址数量IPv432 bit4 294 967 296IPv6128 bit340 282 366 920 938 463 374 607 431 768 211 456 2、IPv6的基本报头在IPv4报头基础上,增加了流标签域,去除了一些冗余字段,使报…