入手Node最好的文章---第三部分

Posted rainux.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入手Node最好的文章---第三部分相关的知识,希望对你有一定的参考价值。

Code Is Never Die !

包管理配置文件

概念

npm 规定,在项目根目录中,必须提供一个叫做 package.json 的包管理配置文件。用来记录与项目有关的一些配置

信息。例如:

  • 项目的名称、版本号、描述等

  • 项目中都用到了哪些包

  • 哪些包只在开发期间会用到

  • 那些包在开发和部署时都需要用到

1. 如何记录项目中安装了哪些包

项目根目录中,创建一个叫做 package.json 的配置文件,即可用来记录项目中安装了哪些包。从而方便剔除node_modules 目录之后,在团队成员之间共享项目的源代码。

注意:今后在项目开发中,一定要把 node_modules 文件夹,添加到 .gitignore 忽略文件中。

2. 快速创建 package.json

npm 包管理工具提供了一个快捷命令,可以在执行命令时所处的目录中,快速创建 package.json 这个包管理配置文件:

npm init -y

注意:

① 上述命令只能在英文的目录下成功运行!所以,项目文件夹的名称一定要使用英文命名,不要使用中文,不能出现空格。

② 运行 npm install 命令安装包的时候,npm 包管理工具会自动把包的名称和版本号,记录到 package.json 中。

3. dependencies 节点

package.json文件中,有一个dependencies节点,专门用来记录你使用npm install命令安装了哪些包

4. 一次性安装所有的包

当我们拿到一个剔除了 node_modules 的项目之后,需要先把所有的包下载到项目中,才能将项目运行起来。

否则会报类似于下面的错误

Error: Cannot find module 'moment'

可以运行 npm install 命令(或 npm i)一次性安装所有的依赖包:

npm install 

5. 卸载包

可以运行 npm uninstall命令,来卸载指定的包:

npm uninstall 包名

注意:npm uninstall 命令执行成功后,会把卸载的包,自动从 package.jsondependencies 中移除掉。

6. devDependencies 节点

如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到 devDependencies 节点中。

与之对应的,如果某些包在开发和项目上线之后都需要用到,则建议把这些包记录到 dependencies 节点中。

您可以使用如下的命令,将包记录到 devDependencies 节点中:

npm i 包名 -D  //简写方式

npm install 包名 --save-dev

解决下包速度慢的问题

1. 为什么下包速度慢

在使用 npm 下包的时候,默认从国外的 https://registry.npmjs.org/ 服务器进行下载,此时,网络数据的传输需要经过漫长的海底光缆,因此下包速度会很慢。

2. 淘宝 NPM 镜像服务器

# 查看当前的下包镜像源
npm config get registry
#设置为淘宝镜像
npm config set registry https://registry.npm.taobao.org
#检查是否设置成功
npm config get registry

3. nrm

为了更方便的切换下包的镜像源,我们可以安装 nrm 这个小工具,利用 nrm 提供的终端命令,可以快速查看和切换下包的镜像源

#安装nrm
npm i nrm -g
#查看可用镜像列表
nrm ls
#设置你需要的镜像
nrm use taobao

包的分类

使用 npm 包管理工具下载的包,共分为两大类,分别是:

  • 项目包

  • 全局包

1. 项目包

那些被安装到项目的 node_modules 目录中的包,都是项目包。

项目包又分为两类,分别是:

  • 开发依赖包(被记录到 devDependencies 节点中的包,只在开发期间会用到)

  • 核心依赖包(被记录到 dependencies 节点中的包,在开发期间和项目上线之后都会用到)

npm i 包名 -D #开发依赖包
npm i 包名    #核心依赖包

2. 全局包

在执行 npm install 命令时,如果提供了 -g 参数,则会把包安装为全局包。

全局包会被安装到 C:\\Users\\用户目录\\AppData\\Roaming\\npm\\node_modules目录下

npm i 包名 -g #全局安装
npm uninstall 包名 -g # 卸载全局包

注意:

① 只有工具性质的包,才有全局安装的必要性。因为它们提供了好用的终端命令。

② 判断某个包是否需要全局安装后才能使用,可以参考官方提供的使用说明即可

3. i5ting_toc

i5ting_toc 是一个可以把 md 文档转为 html 页面的小工具,使用步骤如下:

# 将i5ting_toc 安装为全局包
npm install -g i5ting_toc
# 调用i5ting_toc 实现转化
i5ting_toc -f md文件路径 -o

规范的包结构

在清楚了包的概念、以及如何下载和使用包之后,接下来,我们深入了解一下包的内部结构。

一个规范的包,它的组成结构,必须符合以下 3 点要求:

① 包必须以单独的目录而存在

② 包的顶级目录下要必须包含 package.json这个包管理配置文件

package.json中必须包含 name,version,main 这三个属性,分别代表包的名字、版本号、包的入口。

注意:以上 3 点要求是一个规范的包结构必须遵守的格式

nodemon

1. 为什么要使用 nodemon

在编写调试 Node.js 项目的时候,如果修改了项目的代码,则需要频繁的手动close 掉,然后再重新启动,非常繁琐。
现在,我们可以使用 nodemon这个工具,它能够监听项目文件 的变动,当代码被修改后,nodemon会自动帮我们重启项目,极大方便了开发和调试。

2. 安装 nodemon

在终端中,运行如下命令,即可将nodemon 安装为全局可用的工具:

npm install -g nodemon

3. 使用 nodemon

当基于 Node.js 编写了一个网站应用的时候,传统的方式,是运行 node app.js 命令,来启动项目。这样做的坏处是: 代码被修改之后,需要手动重启项目。
现在,我们可以将node 命令替换为nodemon 命令,使用 nodemon app.js 来启动项目。这样做的好处是:代码 被修改之后,会被nodemon 监听到,从而实现自动重启项目的效果。

node app.js
#将上面终端名利替换为下面,可以实现自动重启项目
nodemon app.js

PS: 博主博客主页(Rainux),精彩继续,欢迎来访!

以上是关于入手Node最好的文章---第三部分的主要内容,如果未能解决你的问题,请参考以下文章

入手Node最好的文章---第一部分

入手Node最好的文章---npm命令

入手Node最好的文章---第二部分

入手Ajax最好的文章---第四部分

入手Ajax最好的文章---第五部分

入手Ajax最好的文章---第二部分