package.json文件
在Node.js中,模块是一个库或框架,也是一个Node.js项目。Node.js项目遵循模块化的架构,当我们创建了一个Node.js项目,意味着创建了一个模块,这个模块的描述文件,被称为package.json。
npm install 命令根据这个描述文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
属性解释:
{
"name": "kkcc", 模块名称
"version": "1.0.0", 模块版本号
"description": "tools", 模块描述信息
"author": "rainbow suger", 作者
"keywords": [ 一个字符串数组,方便别人搜索到本模块
"KKCC",
"VUE"
],
"main": "index.js", 入口文件
"license": "ISC", 模块制定一个协议,限制用户权限ISC许可证
"contributors": "rainbow suger", 其他贡献者
"private": true, 是否私人项目,npm将拒绝发布它
"scripts": { 运行命令简写 - npm run dev
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"build": "node build/build.js",
--ext 参数就是用来指定需要检查的扩展名的文件,src 就是指定检查的目录。
"lint": "eslint --fix --ext .js,.jsx,.vue src", 自动修复
"lint": "eslint --ext .js,.vue src"
},
"dependencies": { 项目运行所需模块 npm install xxx --save
"axios": "^0.19.2"
},
"devDependencies": { 项目开发所需模块 npm install xxx --save -dev
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1"
},
"peerDependencies": { 开发基础库会指定依赖包的版本范围,主项目(按照此依赖包的项目)安装此依赖的时候,如果主项目react、react-dom库不符合基础库版本要求 会报异常
"react": ">=16.12.0",
"react-dom": ">=16.12.0"
},
"engines": { npm node 版本管理
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"husky": { git commmit 之前检查代码规范,按照eslint等
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": { 半自动提升代码质量,修复
"./src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
数组,需要的组件将自动匹配到并使用,也可以配置到具体的组件参数上
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
browserslist设置语法:
| 例子 | 说明 | |:----:|:----:|:----:|:----:| | > 1% | 全球超过1%人使用的浏览器 | | > 5% in US | 指定国家使用率覆盖 | | last 2 versions | 所有浏览器兼容到最后两个版本根据CanIUse.com追踪的版本 | | Firefox ESR | 火狐最新版本 | | Firefox > 20 | 指定浏览器的版本范围 | | not ie <=8 | 方向排除部分版本 | | Firefox 12.1 | 指定浏览器的兼容到指定版本 | | unreleased versions | 所有浏览器的beta测试版本 | | unreleased Chrome versions | 指定浏览器的测试版本 | | since 2013 | 2013年之后发布的所有版本 |
husky & lint-staged:
为了防止一些不规范的代码 commit并push到远端,我们可以在git命令执行前用一些钩子来检测并阻止。现在大前端主要有两种 git钩子插件:husky(jquery与next.js都在用),pre-commit(antd在用)。
husky能够防止不规范代码被commit、push等,而使用了eslint后,用 lint-staged 可以在 lint 后,更加灵活,执行其他脚本,尝试进行修改错误,比如 eslint --fix 检查后并修复错误等,所以项目中使用了 husky 与 lint-staged 结合使用。