起因:看到一篇文章,2018年,你还是只会npm install 吗?,想了想,应该不是在说我,毕竟我还会npm uninstall(O(∩_∩)O)。由于在学Vue,也一直在接触npm工具,之前也看过一两次文档,但只知道基础用法,没太多了解,所以趁着今日有空,看下官方文档,学习一下英文(咦~是不是偏了(*❦ω❦) )。
正题:Getting started
1.What is npm
嗯,主要是一个包(package)管理工具,由网站(查找包、设置参数等)、注册表(一个保存了包信息的数据库)、CLI(Command-Line-Interface)组成。
使用npm的感觉就像,勇士遇到了战马,驯服它,接下来的世界就任你驰骋了。
2.How to find & select packages
在搜索框输入关键字就可以搜索包了,一搜一大堆怎么办?npm网站提供了几个选项作为参考。
Popularity:流行度,这个指标的依据下载量,这个可以作为很好的参考,但不是万无一失(foolproof)的。
Quality:质量,这个是根据有无说明文档(readme file)、稳定性(stability)、测试、以及依赖是否最新、是否有定制的网站等等评估的。
Maintenance:维护,这个是根据开发者的关注度,是否经常维护分级的。
Optimal:最佳的,这个是结合了三种指标(criteria)的结果。
在网站上,点击相应指标可以进行排序。
3.How to set up a new npm account & install npm
如果需要,你可以创建一个npm帐号。
npm是nodejs附带的,所以要先安装nodejs,由于nodejs更新比较快,建议安装node版本管理工具,windows上是nvm-windows,这样可以方便的在不同的node版本间切换,可以避免由于npm和node不是同一个实体管理而带来的更新的复杂和在一个目录安装却想全局使用的尴尬(permission errors)。
如果需要,你可以在终端登录你创建的帐号。命令如下:
npm login
之后你可以测测,是不是登录成功了,命令:
npm whoami
4.How to install local packages
默认是本地,当你想使用nodejs的require语法时,可以选择本地安装。
当需要作为命令行工具使用时,就选择全局安装。
使用npm install <package-name>可以安装包,如果node_modules目录不存在就会创建,之后会在里面找到安装的包。
安装时如果不存在package.json文件,就会安装最新版本的包,如果存在就会按照文件中声明的满足semver rules(语义化版本规则)的最新的包。
5.Working with package.json
最好的管理本地安装的包的方式是使用package.json文件。
一个package.json文件:列出了项目的依赖包,允许你详细描述项目使用的包的版本,使你的构建(build)可重构复现(reproducible)。这样便于和别人分享,毕竟不用拷贝整个node_modules目录了,代码体积会小很多。
要求:
"name",全部小写,一个单词,不允许空格,可以有下划线和破折线。
"version",遵循语义化版本规范(semver spec),形如 x.x.x。
栗子:
{
"name": "my-awesome-package",
"version": "1.0.1"
}
有两种基本的方法创建package.json文件
命令1:npm init
命令2:npm init --yes,这个会创建默认的文件
如果package.json中不存在description字段,将会使用README.md或者README中第一行作为该字段。
在主目录创建.npm-init.js可以定制化键值(questionnaire),栗子:
module.exports = {
customField: 'Custom Field',
otherCustomField: 'This field is really cool'
}
使用npm init .npm-init.js
在package.json中详细描述依赖,使用install命令时,如果带--save就会保存在package.json中,且键值对保存在“dependencies”属性中,如果带-dev就保存在“devDependencies”属性中。如下:
{
"name": "my_package",
"version": "1.0.0",
"dependencies": {
"my_dep": "^1.0.0"
},
"devDependencies" : {
"my_test_framework": "^3.1.0"
}
}
6.How to update local packages
使用npm outdated检测是否有需要更新的包
使用npm update更新
7.How to uninstall local packages
使用命令npm unistall <package-name>,如果是全局安装的,要加-g,如果要在package.json中移除,要加--save,如果是安装的时候加了-dev选项,那么从package.json中移除时也要加这个选项。
8.How to install global packages
使用命令npm install -g <package-name>
9.How to update global packages
使用命令npm update -g更新所有全局包,或者后面加上包名
也可以先找出哪个包需要更新:npm outdated -g --depth=0
如果npm版本不是最新,可以使用命令:npm install npm@latest -g
10.How to uninstall global packages
npm uninstall -g <package-name>
---------------------------------------剩下的文档有时间再学-----------------------------------------------