Node.js相关——package概念及NPM

时间:2021-07-13 11:32:14

1. package 包

CommonJS的包规范允许我们将一组相关的模块组合到一起,形成一组完整的工具。CommonJS的包规范由 包结构 和 包描述文件 两个部分组成。

1.1 包结构

包实际上就是一个压缩文件,解压以后还原为目录。符合规范的目录,应该包含如下文件。

  • package.json   描述文件,必需
  • bin   文件夹,内存放可执行二进制文件,一般在工具包中存在,非必需
  • lib   文件夹,内存放js代码,非必需
  • doc   文件夹,内存放文档,非必需
  • test  文件夹,供单元测试,非必需

Node.js相关——package概念及NPM

1.2 包描述文件

包描述文件用于表达非代码相关的信息,它是一个JSON格式的文件 – package.json,位于包的根目录下,是包的重要组成部分。

package.json 的属性主要有:

  • name - 包名。
  • version - 包的版本号。
  • description - 包的描述。
  • homepage - 包的官网 url 。
  • author - 包的作者姓名。
  • contributors - 包的其他贡献者姓名。
  • dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
  • repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
  • main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
  • keywords - 关键字

2. NPM(Node Package Manager)

CommonJS包规范是理论,NPM是其中一种实践。对于Node而言,NPM帮助其完成了第三方模块的发布、安装和依赖等。借助NPM,Node与第三方模块之间形成了很好的一个生态系统。

node.js安装时会自动下载npm包,该包结构如下:

Node.js相关——package概念及NPM

2.1 NPM常用指令

npm -v               #查看npm的版本
npm version            #查看所有模块的版本
npm init              #初始化项目(创建package.json)
npm i/install 包名        #安装指定的包
npm i/install 包名 --save    #安装指定的包并添加依赖
npm i/install 包名 -g    #全局安装(一般都是一些工具)
npm i/install          #安装当前项目所依赖的包
npm s/search 包名        #搜索包
npm r/remove 包名        #删除一个包

2.2 NPM镜像选择

由于npm的镜像源是在国外,因此安装过程中下载可能比较慢或者下载失败,可以写选择连接 淘宝NPM镜像。方法如下:

2.2.1 临时使用

npm --registry https://registry.npm.taobao.org install express

2.2.2 持久使用

npm config set registry https://registry.npm.taobao.org
npm install express

2.2.3 保留npm,通过cnpm使用

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install express