npm 的使用
NPM简介
Node 中引入了包的概念,npm就是包管理工具。安装node会自带安装npm
NPM安装
nvm Node版本管理工具
$ nvm version // 查看nvm版本
$ nvm install 4.6.2 // 安装node4.6.2版本(附带安装npm)
$ nvm uninstall 4.6.2 // 卸载node4.6.2版本
$ nvm list // 查看node版本
$ nvm use 4.6.2 // 将node版本切换到4.6.2版本
$ nvm root // 查看nvm安装路径
$ nvm install latest //下载最新的node版本和与之对应的npm版本
Node安装对应也会安装npm包管理工具
nrm npm-registry管理工具
npm install -g nrm // 全局安装
nrm test // 测试下各个源的速度
nrm current //查看当前正在使用的源
nrm use taobao //使用某个源
nrm help // 查看更多指令的使用帮助
NPM创建项目
npm init 创建 package.json
npm init -y
name: 项目的名称。version: 项目的版本号。description: 项目的描述。main: 入口文件,当使用require()或import导入模块时,Node.js会从这个文件开始。scripts: 定义了运行脚本的命令,例如启动项目、测试等 。keywords: 关键字数组,用于搜索。author: 作者信息,可以是字符串或对象。license: 项目的许可证。dependencies: 项目运行所依赖的npm包及其版本号。devDependencies: 项目开发所依赖的npm包及其版本号。peerDependencies: 指明你的包需要宿主环境中的某个特定版本的包。engines: 指定项目运行的Node.js版本范围。private: 如果设置为true,表示这个包是私有的,npm不会将它发布到仓库。files: 指定哪些文件应该被包含在发布到npm上的包中。bin: 指定各个二进制文件,让包像Unix可执行命令一样被调用。repository: 项目的仓库位置。homepage: 项目的官网地址。bugs: 指向项目问题跟踪系统的URL或者电子邮件地址。
NPM包的管理
安装
npm install express -g // -g 参数代表着全局 不带-g 本地模块安装在当前目录下的 node_modules 目录下
npm list -g --depth=0 // 输入指令查询全局模块安装路径
npm install react-router@3.* // 安装指定版本的模块
npm install antd babel-plugin-import // 同时安装多个模块
npm install // 安装 package.json 中的包
npm install antd --save // 使用 --save 可以将模块信息记录到 package.json 文件中 dependencies 属性中。
// --save-dev 也会将模块信息记录到 package.json 文件中 devDependencies属性。
卸载
npm uninstall lodash // 只卸载模块
npm uninstall lodash --save // 卸载模块的同时删除在 package.json 文件中的记录
npm uninstall lodash@3.* // 卸载 lodash 模块 3.* 版本
更新
npm update lodash // 会更新到小版本号最新的那个版本,但不会更新到大版本号。
npm update lodash --save // 更新模块的同时将更新信息记录到 package.json文件中
npm update lodash@4.13.1 --save // 当前已经安装的版本是3.9.1 此时由于对大版本号进行更新,依然是3.9.1版本。
查看
npm list -g //查看全局模块
npm list // 查看本地模块
npm list -g --depth=0 // --depth=0 表示查询模块,只显示第一层级的模块
注意
npm同一个模块多个版本默认在使用时会优先调用高版本的模块。最佳实践是安装一个模块的新版本时对这个模块之前的版本进行卸载。
NPM总结
npm 发布包的版本指定规则
使用 Npm 发布一个包的时候,往往要遵循 x.y.z 的规则,发布的第一个版本一般为 1.0.0。
-
x 大版本号。引入新的变化,破坏向后兼容,x 值 +1 变成 2.0.0。
-
y 小版本号。增加一个新功能,且不影响已有功能,y 值 +1 变成 1.1.0;
-
z 补丁号。修改某个功能的 Bug 时,z 值 +1 变成 1.0.1;
package.json 中包版本 ~ 与 ^ 说明
package.json 中会记录很多包的版本号,前面大多出现 ^ 和 ~ 符号,表示某个包的版本号取值范围,包的版本号在这个范围之内都是可以的。
"devDependencies": {
"axios": "^0.15.3",
"babel-eslint": "^6.1.2",
"babel-plugin-dva-hmr": "^0.3.2",
"babel-plugin-import": "^1.1.1",
"draftjs-to-html": "^0.7.0",
"eslint": "^3.17.1",
"eslint-config-airbnb": "^9.0.1",
"eslint-plugin-import": "^1.16.0",
"eslint-plugin-jsx-a11y": "^1.4.2",
"eslint-plugin-react": "^5.1.1",
"less-vars-to-js": "^1.1.2",
"path-to-regexp": "^1.7.0",
"rc-tween-one": "^1.0.0",
"redbox-react": "^1.2.10",
"roadhog": "0.6.0-beta.6"
},
假定某个包的版本是 1.4.0
-
~1.4.0表示:>=1.4.0 && < 1.5.0说明:小版本不变,补丁号可以取最大值。
-
^1.4.0表示:>=1.4.0 && < 2.0.0说明:大版本号不变,小版本号可以取最大值。
浙公网安备 33010602011771号