手记:NodeJS 模块管理 npm
#手记
1. 简介
- npm (node package manager) 是随同 NodeJS 一起安装的包管理工具;
- 新版的 NodeJS 集成了 npm,故安装 NodeJS 即可;
npm -v
用于查看当前 npm 版本;
npm install npm -g
用于更新 npm 版本;
- 淘宝定制的 npm 镜像支持:
npm install -g cnpm --registry=https://registry.npm.taobao.org
,安装成功后改用 cnpm
命令;
2. 基本操作
2.0. 查看帮助
npm help <command>
2.1. 项目初始化
npm init
- 将出现一系列项目基本信息,填写或回车即可;
- 完成后将生成 package.json 文件;
2.2. 安装模块
# 本地安装模块
npm install <module name>
# 全局安装模块
npm install -g <module name>
# 项目安装模块
npm install --save-dev <module name>
- Linux 下,全局安装的模块置于 /usr/local/lib/node_modules
之中(可由 npm config set prefix <path>
修改配置);
- Windows 下,全局安装的模块置于 C:\Users\Administrator\node_modules 之中(需先配置 Path=C:\Users\Administrator\AppData\Roaming\npm);
- 项目安装的模块将写入 package.json;
- 项目安装的模块将置于 ./node_modules 下;
- 项目安装的模块可在 js 文件中用
require(<module name>);
引入使用;
- 追加
--force
/-f
参数可在已有该模块的情况下仍强制安装一次;
2.3. 查看模块
# 查看安装模块
npm ls
# 查看全局安装模块
npm ls -g
2.4. 卸载模块
npm uninstall <module name>
2.5. 更新模块
npm update <module name>
2.6. 清空本地缓存
npm cache clear
3. 基础概念
3.1. 版本号
- 语义版本号
- npm 模块版本号格式为 x.y.z 三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新——
- 如果只是修复 bug,需要更新 z 位;
- 如果是新增了功能,但是向下兼容,需要更新 y 位;
- 如果有大变动,向下不兼容,需要更新 x 位;
3.1. package.json 属性说明
- name
- 包名。
- version
- 包的版本号。
- description
- 包的描述。
- homepage
- 包的官网链接。
- author
- 包的作者姓名。
- contributors
- 包的其他贡献者姓名。
- dependencies
- 生产环境下的依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
- devDependencies
- 开发环境下的依赖包。
- repository
- 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
- main
- main 字段是一个模块 ID,它是一个指向你程序的主要项目。
- keywords
- 关键字。
- 版本号限制规则:
1.2.3
限定该指定版本;
~1.2.3
限定 1.2.x 版本,且不低于 1.2.3;
^1.2.3
限定 1.x.x 版本,且不低于 1.2.3;
1.2.x
限定为 1.2.x 版本;
>1.2.3
限定为 1.2.4 及其以上版本;
>=1.2.3
限定为 1.2.3 及其以上版本;
<1.2.3
限定为 1.2.2 及其以下版本;
<=1.2.3
限定为 1.2.3 及其以下版本;
latest
限定为最新版本;
4. 常用工具
4.0. 常用工具
- CodeKit
- FIS
- Sprint
- ANT
- Gmake
- jasy
- Buildy
4.1. Yeoman
- Yeoman
- 用于定义项目目录结构。
- 安装:
npm install -g yo
- 查看:
yo -v
- 项目目录不等于项目名;
- package.json;
- devDependencies
^_._._
:宽松升级到第一位止
~_._._
:严格升级到第二位止
4.2. Bower
- Bower
- 包管理;库引用;公共部分。
- 安装:
npm install -g bower
- 查看:
bower -v
bower install jquery
- github 短写安装
- github http
4.3. Grunt
- Grunt
- 压缩、编译、单元测试。
- 安装:npm install -g grunt-cli
- 查看:grunt
- 项目许可:ISC, BSD, GPL, MIT;
4.4. Gulp
- Gulp
- 思路是写程序而不写配置。
附:参考