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 ,即可删除

        注意:

                

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

音频筑基:CD还是HiRes?高清音频分类一文说透

音频筑基:CD还是HiRes?高清音频分类一文说透 前言音乐品质分类相关资料 前言 音频信号中,经常遇到高清音乐、无损音质、CD、HiRes等说法,本文主要在纯数字信号级别,从音源分类和编码质量两个维度,做一个分析…

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

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

每日一题——LeetCode1544.整理字符串

方法一 字符串转数组删除元素 将字符串转为数组&#xff0c;遍历数组&#xff0c;如果碰到同一字母大写小写连续出现就原地删除这两个元素&#xff0c;最后把数组转回字符串并返回 var makeGood function(s) {let arrs.split()for(let i0;i<s.length-1;i){if(arr[i]!arr[…

基于SSM SpringBoot vue物流配送人员管理系统

基于SSM SpringBoot vue物流配送人员管理系统 系统功能 登录注册 个人中心 员工管理 考勤信息管理 小区信息管理 打卡信息管理 出勤统计管理 派单信息管理 工资结算管理 任务统计管理 开发环境和技术 开发语言&#xff1a;Java 使用框架: SSM(Spring SpringMVC Mybaits)或…

Java反射机制底层原理

反射机制 这篇文章我是参考了Java 中的反射机制&#xff08;两万字超全详解&#xff09;_java反射-CSDN博客 然后我在这里做一下总结&#xff0c;因为原文章真的很好&#xff0c;我才疏学浅没什么进行补充&#xff0c;只能做出自己的总结并且写一下自己对这个的理解。 原理&…

有效果的新闻软文推广都是怎么做的?

新闻软文推广能够在短时间内提高产品知名度&#xff0c;塑造品牌的美誉度与公信力&#xff0c;并且效果不是短期的&#xff0c;有一定的持续性&#xff0c;是数字化时代下品牌进行宣传的主要方式之一&#xff0c;受到很多企业的青睐&#xff0c;今天媒介盒子就来和大家聊聊&…

网络编程第二天

1.基于TCP的通信(面向连接的通信) 服务器代码实现&#xff1a; #include <myhead.h> #define IP "192.168.126.91" #define PORT 9999 int main(int argc, const char *argv[]) {//1、创建套接字int sfd-1;if((sfdsocket(AF_INET,SOCK_STREAM,0))-1){perror(…

Python学习DAY09_文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景&#xff0c;而实现数据持久化最直接简单的方式就是将数据保存到文件中。 在 Python 中实现文件的读写操作其实非常简单&#xff0c;通过 Python 内置的 open 函数&#xff0c;我们可以指定文件名、操作模式、编码信…

定时任务调动框架Quartz+SpringBoot集成

Quartz 是一个基于 Java 的广泛使用的开源的任务调度框架 官网&#xff1a; http://www.quartz-scheduler.org/ 源码&#xff1a; https://github.com/quartz-scheduler/quartz 整个 Quartz 的代码流程基本基本如下&#xff1a; 1、首先需要创建我们的任务(Job)&#xff0c…

【重要公告】BSV区块链协会宣布将启动多项动态安全增强措施

​​发表时间&#xff1a;2024年2月16日 2024年2月16日&#xff0c;瑞士楚格 - BSV区块链协议的管理机构BSV区块链协会&#xff08;以下简称“BSV协会”&#xff09;宣布对其运营模式实施全新的安全架构&#xff0c;其中包括引入网络访问规则和数字资产找回协议&#xff0c;以及…

【Go语言】Go语言中的字典

Go语言中的字典 字典就是存储键值对映射关系的集合&#xff0c;在Go语言中&#xff0c;需要在声明时指定键和值的类型&#xff0c;此外Go语言中的字典是个无序集合&#xff0c;底层不会按照元素添加顺序维护元素的存储顺序。 如下所示&#xff0c;Go语言中字典的简单示例&…

Linux系统Docker部署Nexus Maven并实现远程访问本地管理界面

文章目录 1. Docker安装Nexus2. 本地访问Nexus3. Linux安装Cpolar4. 配置Nexus界面公网地址5. 远程访问 Nexus界面6. 固定Nexus公网地址7. 固定地址访问Nexus Nexus是一个仓库管理工具&#xff0c;用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关&#xff0c;可…

如果大数据中多头借贷风险严重怎么办呢?

在大数据报告中&#xff0c;多头借贷风险、逾期风险、联系人风险、司法风险等是大数据评分评级的重要组成部分&#xff0c;大数据多头借贷风险也是很多银行和金融平台比较看重的&#xff0c;那如果大数据中多头借贷风险严重怎么办呢?本文详细为大家讲讲。 大数据多头风险是什么…

Niginx介绍和安装使用

Nginx是什么&#xff1f; Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的&#xff0c;第一…

代码随想录算法训练营第二十一天|530.二叉搜索树的最小绝对差、 501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先

530.二叉搜索树的最小绝对差 题目链接/文章讲解&#xff1a; 代码随想录 视频讲解&#xff1a;二叉搜索树中&#xff0c;需要掌握如何双指针遍历&#xff01;| LeetCode&#xff1a;530.二叉搜索树的最小绝对差_哔哩哔哩_bilibili 1.方法1 1.1分析及思路 了解到差值最小的数…

DevEco Studio下载与安装(Windows)

下载地址&#xff1a; HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 安装时直接点击 next 即可。 运⾏已安装的DevEco Studio&#xff0c;⾸次使⽤&#xff0c;请选择Do not import settings&#xff0c;单击OK。 1.安装Node.js 如果本地有下载&#xff0c;可以…

C程序的编译过程

目录 一、GCC编译器 二、编译过程 1、预处理&#xff08;Preprocessing&#xff09; 2、编译&#xff08;Compilation&#xff09; 3、汇编&#xff08;Assembly&#xff09; 4、链接&#xff08;Linking&#xff09; 三、秋招真题演练 一、GCC编译器 在这里&#xf…

linux系统Jenkins工具web配置

Jenkins工具配置 插件配置系统配置系统工具配置 插件配置 下载 Maven Integration Pipeline Maven lntegration gitlab Generic webhook Trigger nodejs Blue ocean系统配置 系统配置结束系统工具配置

androidframework开发面试,阿里P8成长路线

字节跳动Android面经 一面问的 Java 和 Android 基础 1、Jvm虚拟机 2、messageQueue会不会阻塞ui线程 3、对象锁和类锁 4、之字形打印树 5、还有其他的 《Android学习笔记总结最新移动架构视频大厂安卓面试真题项目实战源码讲义》 **完整开源项目&#xff1a;docs.qq.com/doc…

Linux命名管道

Linux匿名管道-CSDN博客 目录 1.原理 2.接口实现 3.模拟日志 Linux匿名管道-CSDN博客 这上面叫的是匿名管道&#xff0c;不要将两者搞混&#xff0c;匿名管道说的是两个有血缘关系的进程相互通信&#xff0c;但是命名管道就是两个没有关系的管道相互通信。 1.原理 和匿名…