深入聊聊Node.js中的模块化( 三 )


npm init -y注意:
(1)上述命令只能在英文的目录下成功运行!所以 , 项目文件夹的名称一定要使用英文命名 , 不要使用中文 , 不能出现空格 。
(2)@运行 npm install 命令安装包的时候 , npm 包管理工具会自动把包的名称和版本号 , 记录到 package.json 中 。

    特别注意:现在的版本安装包会自动生成package.json 。
4、dependencies 节点
package.json 文件中 , 有一个 dependencies 节点 , 专门用来记录您使用 npm install 命令安装了哪些包 。
5、一次性安装所有的包
当我们拿到一个剔除了 node_modules 的项目之后 , 需要先把所有的包下载到项目中 , 才能将项目运行起来 。
否则会报类似于下面的错误:
深入聊聊Node.js中的模块化

文章插图

可以运行 npm install 命令(或 npm i)一次性安装所有的依赖包:
深入聊聊Node.js中的模块化

文章插图

6、卸载包
可以运行 npm uninstall 命令 , 来卸载指定的包:
npm uninstall 具体的包名注意:npm uninstall 命令执行成功后 , 会把卸载的包 , 自动从 package.json 的 dependencies 中移除掉 。 卸载没有简写 。
7、devDependencies 节点
如果某些包只在项目开发阶段会用到 , 在项目上线之后不会用到 , 则建议把这些包记录到 devDependencies 节点中 。
与之对应的 , 如果某些包在开发和项目上线之后都需要用到 , 则建议把这些包记录到 dependencies 节点中 。
您可以使用如下的命令 , 将包记录到 devDependencies 节点中:
深入聊聊Node.js中的模块化

文章插图

3.4 解决下包速度慢的问题
1、为什么下包速度慢
在使用 npm 下包的时候 , 默认从国外的 registry.npmjs.org/ 服务器进行下载 , 因此下包速度会很慢 。
2、淘宝 NPM 镜像服务器
淘宝在国内搭建了一个服务器 , 专门把国外官方服务器上的包同步到国内的服务器 , 然后在国内提供下包的服务 。 从而极大的提高了下包的速度 。
扩展:
镜像(Mirroring)是一种文件存储形式 , 一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像 。
深入聊聊Node.js中的模块化

文章插图

3、切换 npm 的下包镜像源
下包的镜像源 , 指的就是下包的服务器地址 。
深入聊聊Node.js中的模块化

文章插图

4、nrm
为了更方便的切换下包的镜像源 , 我们可以安装 nrm 这个小工具 , 利用 nrm 提供的终端命令 , 可以快速查看和切换下包的镜像源 。
深入聊聊Node.js中的模块化

文章插图

3.5 包的分类
使用 npm 包管理工具下载的包 , 共分为两大类 , 分别是:
    项目包
    全局包
1、项目包
那些被安装到项目的 node_modules 目录中的包 , 都是项目包 。
项目包又分为两类 , 分别是:
    开发依赖包(被记录到 devDependencies 节点中的包 , 只在开发期间会用到)
    核心依赖包(被记录到 dependencies 节点中的包 , 在开发期间和项目上线之后都会用到)

深入聊聊Node.js中的模块化

文章插图

2、全局包
在执行 npm install 命令时 , 如果提供了 -g 参数 , 则会把包安装为全局包 。
全局包会被安装到 C:\Users\用户目录\AppData\Roaming\npm\node_modules 目录下 。
深入聊聊Node.js中的模块化

文章插图

注意:
(1)只有工具性质的包 , 才有全局安装的必要性 。 因为它们提供了好用的终端命令 。
(2)判断某个包是否需要全局安装后才能使用 , 可以参考官方提供的使用说明即可 。
3、i5ting_toc
i5ting_toc 是一个可以把 md 文档转为 html 页面的小工具 , 使用步骤如下:
深入聊聊Node.js中的模块化

文章插图

3.6 规范的包结构
在清楚了包的概念、以及如何下载和使用包之后 , 接下来 , 我们深入了解一下包的内部结构 。
一个规范的包 , 它的组成结构 , 必须符合以下 3 点要求:
(1)包必须以单独的目录而存在
(2)包的顶级目录下要必须包含 package.json 这个包管理配置文件

推荐阅读