eslint常见插件用途及webpack打包配置

最近在研究怎样在webpack打包中加入代码格式审查,看到一大堆各种莫名其妙的eslint相关扩展插件,头大,不明所以,随花了两天时间研究了一下相应的操作;
一般我们使用eslint是想格式化我们的代码,使它更规范,大家能约定熟成,便于统一项目代码风格,减少不必要的格式错误;
一般理想的状态是,大家提交代码之前一会自动格式化,并检查格式错误,给予提示;

git钩子husky

hsuky的作用是在我们git提交代码的生命过程中,针对不同的生命周期,做一些额外操作,例如代码格式审查;
1.安装husky

npm i husky -D

husky的常见取值属性有:
pre-commit、prepare-commit-msg、commit-msg、post-commit;
关于这些属性的具体作用这里我们就不一一细说了,有兴趣的可以自行查阅,我就说常用的pre-commit,这个作用就是再git commit之前做格式审查;
整个项目的基础上运行lint格式检查是很慢的,我们可以利用lint-stage这个插件缓存功能,提高代码检查速度,他只检查暂存区的代码;
我们可以再项目的pack.json中配置如下:

"scripts": {
    "lint": "npm run eslint & npm run stylelint",
    "eslint": "eslint --fix",
    "stylelint": "stylelint src/**/*.{html,jsx,css,less,sass,scss}",
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
   "lint-staged": {
   // 属性名:过滤要检查的文件
   // 属性值:
    "src/**/*.{js,jsx}": [
      "npm run eslint",
      //这条的意思是将经过前面几行命令处理过的代码重新add到git
      "git add"
    ],
    "src/**/*.{html,css,sass,scss,less}": [
      "stylelint",
      "git add"
    ]
  }

eslint配置

1.既然使用eslint,首先就要安装;

npm i eslint babel-eslint -D

ESLint的默认解析器和核心规则仅支持最新的最终 ECMAScript 标准,不支持 Babel 提供的实验性(例如新功能)和非标准(例如Flow或TypeScript类型)语法。@ babel / eslint-parser 是允许 ESLint 在由 Babel 转换的源代码上运行的解析器。
需要说明的是:babel-eslint不再更新维护了,后续使用@babel/eslint-parser
2.创建.eslintrc.*这种形式的eslint配置文件或者直接再pack.json里面的eslintConfig 字段指定配置,ESLint 会查找和自动读取它们,或者你可以在命令行运行时指定一个任意的配置文件。Eg:eslint –config .eslintrc.js;

// 例如.eslintrc.js文件配置
{
//parser默认可以编译esprima,具体配置可以查血eslint官网
    "parser": "babel-eslint",
    "rules": {
        "semi": "error"
    }
}

.eslintignore文件创建需要排除检查的文件

默认情况下,ESLint 支持 ECMAScript 5 语法。你可以覆盖该设置,以启用对 ECMAScript 其它版本和 JSX 的支持。请注意,支持 JSX 语法并不等同于支持 React。针对不同的项目框架语言要相对应的插件支持:
vue:eslint-plugin-vue
react:eslint-plugin-react

常见eslint插件及作用

1.eslint-webpack-plugin:eslint解析器,因为webpack是识别js,要解析eslint必须的loader,这是webpack的基本步骤,相对于老版的eslint-loader,eslint-loader后续不再更新,
2.eslint-plugin-react:专门针对react语法的eslint规则,react项目必须;
3.eslint-plugin-import:针对impot语法优化的插件,防止webpack自定义路径造成的错误;
4.eslint-plugin-prettier:运行prettier代码格式化插件的配置;
5.eslint-config-prettier:eslint关闭r所有不必要或可能与Prettier冲突的规则。
6.eslint-plugin-promise:es语法promise的eslint最佳配置;
7.eslint-config-standard:JavaScript标准样式的ESLint可配置,基础配置;
8.eslint-plugin-react-hooks:专门针对react的hook语法的eslint规则;
9.eslint-plugin-vue:vue项目的的配置,vue项目必须;
10.@typescript-eslint/eslint-plugin:ts语法的配置;
11.eslint-plugin-node: 为node准备的eslint规则配置;
12.eslint-plugin-babel:当使用babel-eslint,这个插件能很好调和babel与eslint的结合,定义在.eslintrc.*的plugin属性中;
13.@babel/eslint-plugin:当使用@babel/eslint-parser,这个插件能很好调和babel与eslint的结合;
所有上述辅助功能配置有的是再webpack配置文件中配置再pugins,eslint-webpack-plugin,有的都要再extends里面申明,具体用法可参照npm对应文档说明,eg:

const ESLintPlugin = require('eslint-webpack-plugin');
module.exports = {
  // 针对eslint-webpack-plugin,老版使用eslint-loader
  plugins: [new ESLintPlugin()],
  // ...
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended"
  ]
};
//.eslintrc.js
module.exports = {
  parser: "@babel/eslint-parser",
  plugins:[
	'@babel/eslint-plugin'
]
};
module.exports = {
  parser: "babel-eslint",
  plugins:[
	'eslint-plugin-babel'
]
};
//or

eslint常用常用配置就先介绍到这里,不足之处欢迎指正;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Webpack打包优化具体配置如下: 1. 缩小打包体积:可以通过以下方式缩小打包体积。 - Tree Shaking:在Webpack 4中,可以通过设置mode为production自动启用Tree Shaking,去除无用代码。也可以通过设置optimization.usedExports为true手动启用。 - Code Splitting:通过使用Webpack的Code Splitting功能,将一个大文件拆分成多个小文件,只按需加载需要的模块。 - 动态导入:通过使用import()或require.ensure()等语法,实现按需加载模块。 2. 加快打包速度:可以通过以下方式加快打包速度。 - 缓存:使用babel-loader时,可以开启缓存,避免相同的文件重复编译。 - 多线程:使用HappyPack或thread-loader等插件,将loader的执行过程多线程并行处理,提高打包速度。 - DllPlugin:使用DllPlugin将第三方库单独打包成一个文件,减少重复打包,提高打包速度。 3. 优化代码质量:可以通过以下方式优化代码质量。 - ESLint:使用ESLint进行代码风格检查和错误检查,提高代码质量。 - Prettier:使用Prettier进行代码格式化,统一代码格式,提高代码可读性。 - TypeScript:使用TypeScript进行类型检查,提高代码质量和可维护性。 4. 优化图片资源:可以通过以下方式优化图片资源。 - 压缩:使用imagemin-webpack-plugin插件,对图片进行压缩。 - 转换:使用url-loader或file-loader等插件,将图片转换为DataURL或Base64格式,减少网络请求。 - 懒加载:使用Intersection Observer API等技术,实现图片懒加载,提高页面加载速度。 5. 拆分第三方库:可以通过以下方式拆分第三方库。 - externals:通过配置externals属性,将第三方库从Webpack打包文件中排除,使用CDN等方式加载。 - DllPlugin:使用DllPlugin将第三方库单独打包成一个文件,通过CDN等方式加载,减少打包体积和页面加载时间。 6. 优化Webpack配置:可以通过以下方式优化Webpack配置。 - resolve.alias:通过配置resolve.alias属性,指定模块的别名,加快模块查找速度。 - noParse:通过配置noParse属性,排除不需要解析的模块,加快打包速度。 以上是Webpack打包优化的具体配置,具体实现需要根据具体项目情况进行分析和决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值