包管理工具npm:Node Package Manager,Node包管理工具。
在前端项目中也使用npm来管理依赖的包。
npm管理的包查看、搜索:npm官网
创建package.json:npm init
或 npm init -y
{
"name": "learn_npm",
"version": "1.0.0",
"private": "true",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies":{},
"devDependencies":{},
"author": "",
"license": "ISC"
}
package-lock.json
内详细记录着安装的第三包的信息(版本,下载路径),以及第三方包之间的依赖关系。
以安装axios为例,对自动生成的这个配置文件进行说明。
{
"name": "demo",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"axios": {
"version": "0.21.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
"integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"requires": {
"follow-redirects": "^1.14.0"
}
},
"follow-redirects": {
"version": "1.14.4",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz",
"integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g=="
}
}
}
在package.json
的dependencies
和devDependencies
中,第三方包的版本会出现^
或~
的符号。
package.json内的第三方包不会记录具体的安装版本,具体的安装版本在 package-lock.json中。
npm的包遵循 :semver版本规范
简要说明semver规范:x.y.z
^
和~
的区别
^x.y.z
:x保持不变,y和z永远安装最新版本~x.y.z
:x和y保持不变,z永远安装最新版本命令中的
install
是可以简写成i
的.
的意思代表着 要安装的包名.
安装命令
全局安装:npm install
局部安装:npm install
重新安装项目的全部依赖:npm install
根据package.json
来构建。
局部安装的分类
开发依赖:npm install
、npm install
或npm i
生产依赖:npm install
或npm i
卸载命令
npm uninstall
、npm uninstall
或npm uninstall
强制重新build:npm rebuild
清除缓存:npm cache clean
查看缓存位置:npm config get cache
方案一
明确找到node_modules
下的.bin
下的包。
局部webpack的版本:./node_modules/.bin/webpack --version
方案二
通过在scripts
内定义脚本命令。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"webpack":"webpack --version"
},
npm run webpack
方案三
使用npx
工具,npx
直接在 node_modules
下的.bin
下查找对应命令
npx webpack --version