记录一下npm的使用方法
npm:全称npm-package-manager
Node.js 标准的软件包管理器。
定位:包工具
常用命令:
npm init
他会让你填一些东西,npm init --yes 可以跳过
创建package.json 文件
{
"name": "node-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
npm install
- 你目录下面没有package-lock.json
他会创建一个
{
"name": "node-test",
"version": "1.0.0",
"lockfileVersion": 1
}
- 如果你的package.json 里面有dependencies,或者devDependencies有包,他会帮你安装,并且新建一个node_modules文件夹,并且安装在这里。
"dependencies": {
"axios": "0.24.0"
}
并且在package-lock.json 里面多了描述。
"axios": {
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"requires": {
"follow-redirects": "^1.14.4"
}
},
- package.json 与package-lock.json 的区别:
package.json:
项目的清单,用于工具的配置中心。 它也是 npm 和 yarn 存储所有已安装软件包的名称和版本的地方
常用属性:
属性 | 作用 |
---|---|
main | 设置了应用程序的入口点(index.js) |
private | 如果设置为 true,则可以防止应用程序/软件包被意外地发布到 npm。 |
scripts | 定义了一组可以运行的 node 脚本。 |
dependencies | 设置了作为依赖安装的 npm 软件包的列表。运行时依赖 |
devDependencies | 设置了作为开发依赖安装的 npm 软件包的列表。开发时依赖 |
engines | 设置了此软件包/应用程序在哪个版本的 Node.js 上运行。 |
browserslist | 用于告知要支持哪些浏览器(及其版本)。 |
package-lock.json:
跟踪被安装的每个软件包的确切版本,以便产品可以以相同的方式被 100% 复制(即使软件包的维护者更新了软件包)
意思是package.json只是简单记录包情况,而lock是详细信息。
更新版本用得上。
- 各种参数
npm install <package-name>
安装该包名并且没package-lock.json ,node_modules也会创建
npm install -g <package-name>
全局安装-g
默认是装到当前文件夹
可以用 npm root -g
得到全局安装位置
一般全局安装位置:
C:\Users\22531\AppData\Roaming\JetBrains\IntelliJIdea2020.3\node\node-v14.15.0-win-x64\node_modules
npm install <package-name> -D 或 --save-dev
默认运行时依赖
-D 开发时依赖
- 如何运行包:npx
- 代码中用require就可以了
- 命令行中 用npx packge_name 就行
npx packge_name
- 安装指定版本包
npm install <package>@<version>
- 列出该包得历史版本
npm view <package> versions
- 版本更新规则:
npm update
- x.y.z
- 第一个数字是主版本。
- 第二个数字是次版本。
- 第三个数字是补丁版本。
以下摘自官网:
规则 | 语义 |
---|---|
^ | 只会执行不更改最左边非零数字的更新。 如果写入的是 ^0.13.0,则当运行 npm update 时,可以更新到 0.13.1、0.13.2 等,但不能更新到 0.14.0 或更高版本。 如果写入的是 ^1.13.0,则当运行 npm update 时,可以更新到 1.13.1、1.14.0 等,但不能更新到 2.0.0 或更高版本。 |
~ | 如果写入的是 〜0.13.0,则当运行 npm update 时,会更新到补丁版本:即 0.13.1 可以,但 0.14.0 不可以。 |
> | 接受高于指定版本的任何版本。 |
>= | 接受等于或高于指定版本的任何版本。 |
<= | 接受等于或低于指定版本的任何版本。 |
< | 接受低于指定版本的任何版本。 |
= | 接受确切的版本。 |
- | 接受一定范围的版本。例如:2.1.0 - 2.6.2。 |
|| | 组合集合。例如 < 2.1 |
npm uninstall
- 全局卸载:
npm uninstall -g xx
- 非全局(本地):
- 默认(不会删掉package.json 里面得记录)
npm uninstall <package-name>
- -S 删掉package.json
- -D 开发时依赖必须使用-D
npm install -g cnpm --registry=https://registry.npm.taobao.org
使用淘宝镜像