温故知新,总结一下npm
1、关于npm
- npm全称为Node Package Manager
- 是一个基于Node.js的包管理器,也是整个Node.js社区最流行、支持的第三方模块最多的包管理器。
- npm是世界上最大的软件注册表。
- npm由三个不同的组件组成:网站、命令行界面(CLI)、注册表
2、使用npm
安装node的时候就直接把NPM安装好了,npm需要和node一起使用,所以直接去下载node就好了。
安装:百度node去官网下载安装。
更新npm: npm install npm@latest -g
2.1 npm管理包
想使用npm安装别人提供的包很简单
npm install <package_name>
更新包:
- 在 package.json 文件所在的目录中执行 npm update 命令。
- 执行 npm outdated 命令。不应该有任何输出。
卸载包:
npm uninstall <package>
2.2 npm常用参数
-g
: 全局安装--save / -S
: 将模块依赖关系写入到package.json文件的dependencies参数中-dev / -D
:将模块依赖关系写入到package.json文件的devDependencies参数中@+version
:安装指定版本
2.3 npm常用命令
npm config set registry <URL>
: 更改npm的镜像源npm init
:初始化npm init -y
:默认配置npm help
: 帮助npm run <command>
: 运行脚本
3、package.json
npm初始化完成之后会生成一个package.json
文件,这个文件不可以加注释,因为是json文件。
使用的默认配置npm init -y
{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
3.1 目录字段的含义
name
:包名字version
:版本号description
:描述main
:入口文件scripts
:配置脚本的地方keywords
:关键字,用于搜索author
:作者license
:协议
除了上面几个默认的字段之外,还有一些常用的
dependencies
:依赖项,该项里面的依赖生产环境和开发环境都需要devDependencies
:开发依赖, 里面的依赖只有开发环境需要eslintConfig
:eslint的配置项peerDependencies
:会提示你缺少的模块,默认要求带版本bundleDependencies
:该项配置的依赖在打包的时候会打进包里面
4、version 版本号
版本的三个数代表着发版的重要性,是版本的标识号
例如:1.2.3
- 第一位表示大版本更新,不兼容之前的代码
- 第二位表示增加了功能,局部更新
- 第三位表示小补丁。
还有一些常用的版本标识
- Alpha:初始版本
1.2.3-alpha.1
- Beta:Beta版本是Alpha版本后的一个版本,与Alpha版本相比,Beta版本修复了Alpha版本的一些Bug。
1.2.4-beta.1
- RC:RC版本称为“发布候选版”
1.3.0-rc.1
- GA:GA版本是普遍可用版本,从该版本开始,官方开始推广使用。
- R(Release):正式版
- dev:测试版,测试使用的
5、scripts 脚本
scripts字段是配置执行的脚本的,它有两个作用
- 执行命令: echo xxxx
- 执行
node_modules/.bin
下的文件
当我执行npm run 的时候 他会把当前目录node_modules/.bin也拷贝到当前的系统的path中,所以npm run 可以执行.bin下的文件。
6、license 协议
放一张图
7、dependencies 依赖
不同的依赖项的作用不一样,上面有说。
"dependencies": {
"axios": "^0.19.0"
},
"devDependencies": {
"eslint": "^5.16.0"
},
8、发布
发布的时候需要npm切到官方的源,在全局作用域下。
具体发布看另一篇 https://catsaid.cn/2019/10/16/webpack4/
9、扩展
nrm: 是一个管理 npm 源的工具。用来切换官方 npm 源和国内的 npm 源。
nvm:他可以方便的在同一台设备上进行多个node版本之间切换
npx:可以直接执行node_modules/.bin文件 不需要在去配置scriprts;如果模块不存在可以安装 ,安装完是有后还会自己销毁,避免安装全局模块, 拔x无情。
npx create-react-app project-name