ESLint 配合 Webpack 使用
ESLint 是前端的一个代码检查工具,它可以根据指定的规则来检查代码是否符合规范。ESLint 可以直接在命令行使用,也可以集成到编辑器中使用,也可以配合 Webpack 使用。之前简单写了一下命令行使用和集成到 VSCode 使用,这里继续写配合 Webpack 使用。
如果您还不了解 Webpack 的话,可以看 Webpack 简易使用指南,如果不了解 ESLint 的话,可以看 使用 ESLint 检查代码规范 。
安装 eslint-loader
要配合 Webpack 使用就需要安装 eslint-loader,这里假设你已经安装和配置好了 Webpack。
npm 安装 eslint-loader:
npm install --save-dev eslint-loader除了安装 eslint-loader 外,还需要安装 ESLint:
npm install --save-dev eslint配置 eslint-loader
在 webpack.config.js 的 loader 配置区域内加入:
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'eslint-loader',
}这里没有使用多余的选项。
配置 ESLint
项目根目录需要有一个 .eslintrc.json 配置文件,可以输入:
npx eslint --init初始化 ESLint 配置。
关于 .eslintrc.json 配置文件的说明可以看 使用 ESLint 检查代码规范 中的 配置文件简单说明。
使用
我的 Webpack 配置的入口文件是 src/main.js,下面是 main.js 中的内容:
import hello from './hello'; // 加载 hello.js
hello(); // 执行上面的 src/main.js 会加载 src/hello.js,下面是 hello.js 的内容:
export default () => {
console.log('Hello Webpack'); // 在控制台输出hello
};看上去也没啥问题,但是我在 ESLint 的配置文件中禁止了 console 。
运行打包后控制台输出了如下内容:
ERROR in ./src/hello.js
Module Error (from ./node_modules/eslint-loader/dist/cjs.js):
E:\eslint\src\hello.js
2:3 error Unexpected console statement no-console只有修复问题才能打包。
如果把 no-console 的规则设置为 ``warn 警告,打包后控制台输出了如下的内容:
WARNING in ./src/hello.js
Module Warning (from ./node_modules/eslint-loader/dist/cjs.js):
E:\eslint\src\hello.js
2:3 warning Unexpected console statement no-console警告不会影响打包。
eslint-loader 配置说明
如果需要配合其它处理 JS 文件的 loader 使用的话,需要注意 loader 的加载顺序。Webpack 的 loader 的加载顺序是从下到上,eslint-loader 是检查代码规范的,需要先加载 eslint-loader。
如果是配合 babel-loader 使用的话,加载配置如下:
{
test: /\.js$/,
exclude: /node_modules/,
loader: [
'babel-loader',
'eslint-loader'
]
}其它处理 JS 的 loader 也是一样的,需要先加载 eslint-loader。
eslint-loader 选项说明
上面的 eslint-loader 没有配置选项,下面是 eslint-loader 的选项配置说明。
cache
类型:Boolean or string。
默认:false。
把检查结果缓存到文件中,如果值的类型是 Boolean,会缓存到 ./node_modules/.cache/eslint-loader,如果值类型为 string 会缓存到指定的文件中。
配置示例:
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'eslint-loader',
options: [
cache: true
]
}fix
类型:Boolean。
默认:false。
自动修正,注意:自动修正会改变文件内容。
配置示例:
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'eslint-loader',
options: [
fix: true
]
}quiet
类型:Boolean。
默认:false。
如果设置为 true 会忽略警告。
配置示例:
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'eslint-loader',
options: [
quiet: true
]
}相关文章:
版权声明:本文为原创文章,版权归 Changbin's Blog 所有,转载请联系博主获得授权。
本文地址:https://www.misterma.com/archives/859/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。