4.2——Node.js的npm和包( 四 )


一次性安装所有的包npm
当我们拿到一个剔除了的项目之后,需要先把所有的包下载到项目中,才能将项目运行起来 。只要.json还在,里面有可以进行下载 。可以运行 npm命令(或 npm i)一次性安装所有的依赖包:
否则无包会报类似于下面的错误:
卸载包
可以运行 npm命令,来卸载指定的包 。注意:npm命令执行成功后,会把卸载的包,自动从 .json 的中移除掉 。
节点
如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到节点中 。与之对应的,如果某些包在开发和项目上线之后都需要用到,则建议把这些包记录到节点中 。
您可以使用如下的命令,将包记录到节点中:
【4.2——Node.js的npm和包】解决下包速度慢的问题
在使用 npm 下包的时候,默认从国外的 服务器进行下载,此时,网络数据的传输需要经
过漫长的海底光缆,因此下包速度会很慢 。
默认是官方服务器npmget
切换到淘宝的
npmset =
nrm
为了更方便的切换下包的镜像源,我们可以安装 nrm 这个小工具,利用 nrm 提供的终端命令,可以快速查看和切换下
包的镜像源 。
-g表示全局可用
包的分类
使用 npm 包管理工具下载的包,共分为两大类,分别是:
? 项目包
? 全局包
那些被安装到项目的目录中的包,都是项目包 。
项目包又分为两类,分别是:
? 开发依赖包(被记录到节点中的包,只在开发期间会用到)
? 核心依赖包(被记录到节点中的包,在开发期间和项目上线之后都会用到)
全局包
在执行 npm命令时,如果提供了 -g 参数,则会把包安装为全局包 。
全局包会被安装到 C:\Users\用户目录\\\npm\ 目录下 。
① 只有工具性质的包,才有全局安装的必要性 。因为它们提供了好用的终端命令 。
② 判断某个包是否需要全局安装后才能使用,可以参考官方提供的使用说明即可
是一个可以把 md 文档转为 html 页面的小工具,使用步骤如下
规范的包结构
在清楚了包的概念、以及如何下载和使用包之后,接下来,我们深入了解一下包的内部结构 。
一个规范的包,它的组成结构,必须符合以下 3 点要求:
① 包必须以单独的目录而存在
② 包的顶级目录下要必须包含 .json 这个包管理配置文件
③ .json 中必须包含 name,,main 这三个属性,分别代表包的名字、版本号、包的入口 。
注意:以上 3 点要求是一个规范的包结构必须遵守的格式,关于更多的约束,可以参考如下网址:
自定义包
1.首先需要三个文件,index.js,.json,.md
① 新建 -tools 文件夹,作为包的根目录
② 在 -tools 文件夹中,新建如下三个文件:
? .json (包管理配置文件)
? index.js (包的入口文件)
? .md (包的说明文档)
关于更多许可协议相关的内容,可参考
{"name": "itheima-tools","version": "1.0.0","main": "index.js","description": "提供了格式化时间、HTMLEscape相关的功能","keywords": ["tiheima","dataFormat","escape"],"license": "ISC"}
//1.定义格式化时间的方法function dataFormat(dataStr){const dt = new Date(dataStr)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}//htmlEscapfunction htmlEscape(htmlStr) {//正则表达式表示小于符号,大于符号,双引号,&符号,其中是或的关系,以及全局匹配greturn htmlStr.replace(/