【Node.js】 npm与包
npm与包
- 什么是包
- 包的来源
- 为什么需要包
- 从哪里下载包
- 怎么下载包
- 初体验
- 在项目中安装包的命令
- npm的注意点
- 包的语义化版本规范
- 包管理配置文件(package.json)
- 当第三方包的体积过大时
- 快速创建package.json
- dependencies节点
- devDependencies节点
- 卸载包
- 解决下载包速度慢的问题
- 安装nrm
- 包的分类
- md文档转html页面小工具
- 规范的包结构
什么是包
- node.js中的第三模块又叫做包
包的来源
- 包由第三方个人或团队开发出来的,免费供所有人使用
为什么需要包
- 由于Node.js内置模块提供了一些底层的API,导致在基于内置模块进行项项目开发时,效率低
- 包是基于内置模块封装出来的饿,提供了更高级,更方便的API,极大的提高了开发效率
从哪里下载包
- 国外的IT公司 npm,Inc,有个网站:https://www.npmjs.com,进行搜索包
- 它是全球最大的包共享平台
- 提供了一个地址为http://registry.npmjs.org/的服务器(需要工具来进行跳转),来对外共享所有的包,可以在上面下载所需要的包
怎么下载包
- 通过包管理工具Node Package Manager(简称npm包管理工具),这个工具随着Node.js的安装包一起被安装到了用户电脑上
- 终端 npm -v可以查看包
初体验
格式化时间
- 传统方法
//文件名:Datemiss.js
//定义格式化时间的方法,传入日期时间
function getTime(time) {const dt = new Date(time)const y = dt.getFullYear()const m = padzero(dt.getMonth() + 1)const d = padzero(dt.getDate())const hh = padzero(dt.getHours())const mm = padzero(dt.getMinutes())const ss = padzero(dt.getSeconds())return `${y}-${m}-${d}-${hh}-${mm}-${ss}`
}
//定义补零函数
function padzero(n) {return n > 9 ? n : '0' + n
}
module.exports={getTime
}
const miss1 = require('./Datemiss.js')
const dt = new Date()
console.log(miss1.getTime(dt))//2023-02-15-13-26-04
- npm方法
- 使用npm install moment 命令进行下载
const moment = require('moment')
const dt = moment().format('YYYY-MM-DD HH:mm:ss')
console.log(dt)//2023-02-15 13:36:39
在项目中安装包的命令
- npm install 包的完整名字
- 简洁写法:npm i 包的完整名字
- 想知道包里面的用法,就去搜包
- 一般会自动安装最新版本包,也可以通过@符号指定具体的版本,类似,npm i moment@2.22.2
- 一次安装多个包,可以通过空格,类似,npm i jquery art-template
- 一次安装项目所有包,通过npm i
- 安装到项目开发阶段的包,项目上线之后不会用,通过-D,类似npm i 包名 -D,等价于npm i 包名 - -save-dev
npm的注意点
- 初次安包完成,会多配置文件,程序员不要手动修改,npm包管理工具会自动维护
- node_modules文件夹用来存放所有已安装到项目中的包
- package-lock配置文件记录node_modules目录下的每一个包的下载信息,类似,包名,版本号,下载地址
包的语义化版本规范
- 版本号以点分十进制形式进行定义,例如,2-24-0
- 第一位数字代表 ,大版本
- 第二位数字代表,功能版本
- 第三位数字代表,bug修复版本
- 只要前面的版本号增加,后面的版本号就要归零
包管理配置文件(package.json)
- npm规定,在项目目录下,必须提供一个叫做package.json的包管理配置文件,用来记录与项目有关的一些配置信息
- 记录了项目中用到了哪些包
当第三方包的体积过大时
- 当文件第三方包的体积过大,不方便团队成员之间共享源代码,
- 解决方案:共享时候删除node_modules,也就是将文件夹,添加到.gitignore忽略文件中
- 上传代码时,可以选择只上传源代码
- 删除了node_modules,其他人如何使用呢,其他人通过package.json可以进行下载
快速创建package.json
npm init -y ,一般新建项目文件夹后,执行它
- 上述命令只能在英文的目录下成功运行,所以,项目文件名一定使用英文命名,不用使用中文,不能出现空格
- 安装包的时候npm install命令时候,npm包管理工具会自动把包名称和版本号,记录在package.json中
dependencies节点
- package.json文件中,有一个dependencies节点,专门用来记录您使用npm install命令安装了哪些包
devDependencies节点
- 只在开发阶段使用,建议把这些包记录到devDependencies节点
- 如果在开发和上线之后都需要用到,建议把这些包记录到dependencies节点
卸载包
npm uninstall 名字,来卸载指定的包,也会删除dependencies节点里面的信息
解决下载包速度慢的问题
为什么下载包这么慢?
- 在使用npm下包的时候,默认从国外的http://registry.npmjs.org/服务器进行下载,此时,下载 的网络数据的传输需要经过漫长的海底光缆,因此下包速度慢
淘宝NPM镜像服务器
- 淘宝NPM镜像服务器,淘宝在国内搭建了一个服务器,专门把国外官方服务器上的包同步到国内的服务器上,然后在国内提供下包的服务,从而极大的提高了下载速度
- 淘宝NPM镜像服务器作用:
- 每隔一段时间,自动把npm 官方服务器的包同步在国内
- 对国内用户提供下包服务
扩展:镜像,是一种文件存储形式,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像
切换npm 的下包镜像源
- 下包的镜像源,指的就是下包的服务器地址
- 查看当期的下包镜像源,npm config get registry
- 切换为淘宝镜像源,npm config set regisitry=https://registry.npm.taobao.org/
- 检查镜像是否下载成功,npm config get registry
- 切换国外:npm config set registry https://registry.npmjs.org/
- 为了更快更方便的切换镜像源,可以安装nrm这个小工具,利用这个工具提供的终端命令,可以快速查看和切换
安装nrm
- npm i nrm -g, 通过-g,将nrm安装为全局可用的工具
- nrm ls ,查看所有可用的镜像源
- nrm use taobao ,切换为taobao镜像
包的分类
- 项目包,被安装到项目的node_modules目录中的包,都是项目包
- 项目包又分为两类,
- 开发依赖包,只在开发期间用到的包
- 核心依赖包,在开发期间和项目上线之后都会用到的包
- 全局包,如果提供了-g参数,则会把包安装为全局
- 一般都会放置在:C:\Users\pc\AppData\Roaming\npm\node_modules下
- 卸载全局包:npm uninstall 包名 -g
- 只有工具性质的包,才有全局安装的必要性
md文档转html页面小工具
扩展:iSting_toc是一个可以把md文档转为html页面的小工具
//将iStall_toc安装为全局包
npm installl -g iSting_toc
//调用iSting_toc,实现转化功能
iSting_toc -f要转换的md文件路径 -o
规范的包结构
- 组成结构
- 包必须以单独的目录存在
- 包的顶级目录下要包含package.json这个包管理配置文件
- package.json中必须包含name,version,main这三个属性,分别代表包的名字,版本号,包的入口
【Node.js】 npm与包相关推荐
- Mac 下搭建环境 homebrew/git/node.js/npm/vsCode...
主要记录一下homebrew/git/node.js/npm的命令行安装 很简单,下面开始: 1. homebrew 也是一个包管理工具: mac 里打开终端命令行工具,粘下面一行回车安装brew, ...
- Node.js: NPM 使用介绍
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并 ...
- Windows下安装node.js(npm) git+vue
Windows下安装git+node.js+npm+vue 放到统一大文件夹下 下载node.js http://nodejs.cn/ npm是随同NodeJS一起安装的包管理工具,能解决NodeJS ...
- linux安装socket.io,ubuntu – 如何在node.js npm服务器上查看socket.io版本
我想确认一下,如果我升级到socket.io 0.7,我的当前应用程序是否无法在此服务器上运行?如果我升级 为此我想看看我当前的socket.io版本,我怎么能看到它? 而另一方面我想去稳定版本的节点 ...
- (18) Node.js npm包管理工具
一.npm概述 npm (Node Package Manager)是 Node.js 的包管理工具. 什么是包?包就是一坨代码,就是 Node.js 的第三方模块. 例如:JQuery模块,Boot ...
- Node js npm 包管理工具的基本使用
初始化一个node项目 npm initnpm init -y 没有 -y 参数表示自定义一些参数 -y 参数表示默认选项 初始化项目之后就会多出一个 package.json 的文件 查找需要的包 ...
- node.js(npm)|bower(bootstrap)|git
为什么80%的码农都做不了架构师?>>> node.js 安装步骤:http://www.runoob.com/nodejs/nodejs-install-setup.htm ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- node.js模块和包
概念:模块(Module)和包(Package)是Node.js最重要的支柱.开发一个具有一定规模的程序不可能只用一个文件,通常需要把各个功能拆分.分装.然后组合起来.模块正式为了实现这种方式而诞生, ...
- Node.js npm
第三方模块有两种存在形式: 以js文件的形式存在,提供实现项目具体功能的API接口. 以命令行工具形式存在,node.js自带 npm (node package manager) : node的第三 ...
最新文章
- 包装类接受string 会自动将数字类型string转换成对应得包装类型
- 【HDU】1305 Immediate Decodability(字典树:结构体数组,二维数组,链表/指针)
- 如何安装部署salt yum?
- 扯淡!C语言怎么可能被淘汰呢?
- Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比
- “高级”CSS样式一般应用于控制网页内容的外观。附加样式表分为内嵌样式表和外部样式表两种方式。
- python部署服务器 venv_迁移virtualenv环境
- discuz6.1.0 弹出无效的图片文件解决办法
- 【路径规划】基于matlab GUI改进的迪杰斯特拉算法路径规划【含Matlab源码 1031期】
- php是一种,php是一种什么类型的语言
- 初识KnockoutJS
- Python条件判断
- 《孤独的青春创造不孤独的人生》
- 苹果产品中投影的秘密在这里
- 怎么关闭win10自带杀毒软件
- 统计Excel数据的重复个数(两个方法)
- Jmeter dubbo插件测试dubbo接口
- DAY 2 基础查询与排序
- IdentityServer Checking for expected scope openid failed
- 霍尔开关(霍尔传感器)
热门文章
- 计算机编程飞船,信息学奥赛题库- 太空飞船
- 【Java算法之dfs 与bfs详解】
- spring配置文件中引入其他的配置文件
- [ Office 365 开发系列 ] Graph Service
- spring data jdbc 基本使用
- 计算机毕业设计 SSM在线电影售票系统(源码+论文)
- python中继承是什么意思,解释一下python中的继承
- [附源码]java毕业设计小区物业管理系统论文
- 一文了解linux 内核模块 强制卸载
- ARM | STM32F10xxx课堂学习笔记(时钟 高级控制定时器)...