好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

爬虫工程师也应该会的 NodeJS 知识(二)

NPM 是什么?

在了解 NPM 之前,我们需要理解 NodeJS 中包和模块是什么?

简单来说,一个模块是一个单独的文件, 一个包中可以有一个或多个模块。

而在 NodeJS 中为了方便开发人员发布、安装和管理包,,NodeJS 推出了一个包管理工具 NPM ( Node Package Manager )。

NPM 不需要我们单独安装,只要搭建好 NodeJS 环境就已经自动安装好了

NPM就相当于电脑上的软件管家,通过 NPM 我们可以快速找到我们需要的包,可以快速安装我们需要的包, 可以快速删除我们不想要的包等等。

NPM 的使用

NPM 包的安装方式

1、全局安装

全局安装一般用于安装全局使用的工具,存储在全局 node_modules 中。

 # 安装包 npm install -g 包名   # 默认安装最新版本 # 卸载包 npm uninstall -g 包名 # 更新包 npm update -g 包名   # 更新失败可以直接使用install  

2、本地安装

本地安装一般用于安装当前项目使用的包, 存储在当前项目node_modules中

 # 安装包 npm install 包名 # 卸载包 npm uninstall 包名 # 更新包 npm update 包名  

关于 NPM 中的 package.json

在我们创建一个项目的时候,我们项目目录下是没有 package.json 这个文件的,所以我们初始化本地包后可以自动生成

 npm init  

我们可以打开这个文件来看看文件的内容

在包描述文件 package.json 中定义了当前项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install 命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境

注意点:package.json 文件中, 不能加入任何注释

在 package.json 中有两个配置项需要我们注意:

dependencies:生产环境包的依赖,一个关联数组,由包的名称和版本号组成 devDependencies:开发环境包的依赖,一个关联数组,由包的名称和版本号组成

当我们在安装包时使用 npm install 包名 --save  安装的包名会在 dependencies 这个配置项中体现出来。

当我们在安装包时使用 npm install 包名 --save-dev  安装的包名会在 devDependencies 这个配置项中体现出来。

当我们将项目拷贝给其它人,或者发布的时候,我们不会将项目中的 node_modules 也给别人,因为太大,而且有的包可能只在开发阶段需要,但是在上线阶段不需要,所以需要分开指定

所以在将项目发布的时候可以使用下面的命令来配置对应的环境

 npm i               所有的包都会被安装 npm i --production  只会安装dependencies中的包 npm i --development  只会安装devDependencies中的包  

这就时 NPM 方便的地方。

下载 Node 包太慢怎么办?

不少读者在使用 NPM 的时候面临一个问题就是使用 NPM 安装包太慢了,可以试试使用 nrm

方法一 - nrm

由于 npm 默认回去国外下载资源, 所以对于国内开发者来说下载会比较慢所以就有人写了一个nrm工具,允许你将资源下载地址从国外切换到国内。

具体使用可以试试下面的命令

 npm install -g nrm # 安装NRM nrm --version #查看是否安装成功 npm ls    # 查看允许切换的资源地址 npm use taobao  #将下载地址切换到淘宝  

使用方式直接使用 npm install 包名 即可。

方法二 - cnpm

cnpm 就是将下载源从国外切换到国内下载, 只不过是将所有的指令从npm变为cnpm而已

 npm install cnpm -g –registry=https://registry.npm.taobao.org  # 安装CNPM cnpm -v  # 查看是否安装成功  

使用方式同 npm, 例如: npm install jquery  变成 cnpm install jquery 即可

其实除了 npm 外,Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 Yarn 。

Yarn 是为了弥补 npm5.0之前 的一些缺陷而出现的,不过对于爬虫工程师来说,npm 已经完全够用了。

Love & Share 

[ 完 ]

查看更多关于爬虫工程师也应该会的 NodeJS 知识(二)的详细内容...

  阅读:28次