ESLint结合gulp使用

ESLint结合gulp使用ESLint结合gulp使用一、安装二、使用步骤1.引入库2.读入数据总结一、安装示例:pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.filterwarnings(‘ignore’)im

大家好,又见面了,我是你们的朋友全栈君。

ESLint结合gulp使用

一、安装

yarn add eslint gulp-eslint --dev

创建配置文件

yarn eslint --init

配置文件内容

module.exports = { 
   
  env: { 
   
    browser: true,
    es2021: true
  },
  extends: [
    'standard'
  ],
  parserOptions: { 
   
    ecmaVersion: 12
  },
  rules: { 
   
  }
}

二、使用

在gulp中,我们需要将eslint添加到编译js的构建任务当中,例如我这里的script任务

const script = () => { 
   
  return src('src/assets/scripts/*.js', { 
    base: 'src' })
    .pipe(plugins.eslint())
    .pipe(plugins.babel({ 
    presets: ['@babel/preset-env'] }))
    .pipe(dest('temp'))
    .pipe(bs.reload({ 
    stream: true }))
}

这个任务使用了babel转换源代码,我们需要做的就是将eslint集成进去,因为gulp是一种管道机制,所以集成eslint就应该在babel之前,因为这里使用了自动加载gulp插件的gulp-load-plugins,所以直接通过plugins.eslint()使用gulp-eslint。

// gulp-load-plugins使用方式
const loadPlugins = require('gulp-load-plugins')
const plugins = loadPlugins()

在打包入口文件中写一些问题代码,例:

const a = 1

执行script任务,yarn gulp script

在这里插入图片描述
提示es2021的错误,可能是版本问题导致,这里找到node_modules/eslint-config-standard/eslintrc.json和根目录下的.eslintrc.js,将其中env配置中的es2021都改成2020。

再次执行yarn gulp script

在这里插入图片描述
提示array-callback-return规则的值不能是这种格式,手动将值修改为error,接下来会有几个同类型的报错,都这样修改。

再次执行script任务。

在这里插入图片描述
任务运行正常,并没有检测出我们写的问题代码。这是因为,默认情况下,eslint只会去检测代码中的问题,而并不会根据检查结果做出任何反馈,所以正确的做法应该实在eslint处理完毕之后,我们去使用eslint的format方法在控制台中打印错误信息。之后再使用eslint的failAfterError方法,让eslint在检查到错误之后,可以直接终止任务管道。代码如下

const script = () => { 
   
  return src('src/assets/scripts/*.js', { 
    base: 'src' })
    .pipe(plugins.eslint())
    .pipe(plugins.eslint.format())
    .pipe(plugins.eslint.failAfterError())
    .pipe(plugins.babel({ 
    presets: ['@babel/preset-env'] }))
    .pipe(dest('temp'))
    .pipe(bs.reload({ 
    stream: true }))
}

再次执行script任务。提示错误Parsing error: Invalid ecmaVersion

这是因为我们前面修改了env中的es版本到es2020,而ecmaVersion还是12,将其修改为对应版本也就是11。

修改好后再次执行script,成功检测到代码问题并报出错误信息。

在这里插入图片描述

前面四个规则可能是因为版本问题找不到具体规则信息,我这里是到node_modules/eslint-config-standard/eslintrc.json文件中将这四个规则删除了。

再次执行任务。
在这里插入图片描述
主要的错误就是$和a的错误,另外的是代码风格的问题,例如空格之类的。可以通过fix自动处理代码风格问题,但这里不能使用 –fix的方法,需要将fix作为配置属性添加到plugins.eslint中

plugins.eslint({ 
   
  fix: true
 })

再次执行script任务
在这里插入图片描述
终于得到了我们想要的结果了,提示”$”未定义,”a”从未使用。

只需要将从未使用的a变量删除即可。

‘$’就是因为没有设置全局成员,解决办法就是在eslint配置中添加:

globals:{ 
   
	"$":"readonly"
}

再去执行script任务,就不会有任何错误了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150488.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月18日 上午6:46
下一篇 2022年6月18日 上午6:46


相关推荐

  • 你应该知道的,十二大CNN算法

    你应该知道的,十二大CNN算法大家好,我是K同学啊!今天和大家分享一下自年来,涌现出来的那些优秀的图像识别算法模型。⭐️简介模型是YannLeCun教授于1998年在论文《Gradient-basedlearningappliedtodocumentrecognition》中提出。它是第一个成功应用于手写数字识别问题并产生实际商业(邮政行业)价值的卷积神经网络。被誉为是卷积神经网络的“HelloWord”,它是最简单的架构之一。有2个卷积层和3个全连接层,有大约60,000个参数。…………..

    2025年10月3日
    5
  • 豆包AI如何集成API 豆包AIAPI集成步骤

    豆包AI如何集成API 豆包AIAPI集成步骤

    2026年3月12日
    3
  • crontab 用法(执行python文件)[通俗易懂]

    crontab 用法(执行python文件)[通俗易懂]前提:创建一个xxx.py的文件文件头为#!/usr/bin/python3#-*-conding=utf-8-*-print(‘helloworld’)更改权限chmod777xxx.py这样python文件就可以执行了ubuntu@VM-0-10-ubuntu:~/script$./test.pyhelloworldcrontab使用…

    2022年8月24日
    11
  • mysql 获取当前时间数字_MySQL 获得当前日期时间(以及时间的转换)

    mysql 获取当前时间数字_MySQL 获得当前日期时间(以及时间的转换)MYSQL获取当前日期及日期格式获取系统日期:NOW()格式化日期:DATE_FORMAT(date,format)注:date:时间字段format:日期格式返回系统日期,输出2009-12-2514:38:59selectnow();输出09-12-25selectdate_format(now(),’%y-%m-%d’);根据format字符串格式化date值:%S,%…

    2026年4月15日
    3
  • (十五)红外通信

    (十五)红外通信本节我们主要是讲解有关于红外通信的内容 我们通过我们的一个红外发射器 就像一个遥控器一样的东西 向连接了红外接收器的 51 单片机发射一个红外信号 红外接收器接收到了信号之后在我们的数码管上显示出来我们发射的具体的按键值 关于红外光 人类能看到的光从长到短排列依次就是彩虹七色 红 橙 黄 绿 青 蓝 紫 其中红光的波长范围为 0 62 0 76um 紫光的波长范围为 0 38 046um 比紫光波长还短的光叫紫外线 比红光波长长的光叫红外线 红外线遥控就是利用波长为 0 76u

    2026年3月17日
    1
  • 使用memset初始化数组

    使用memset初始化数组写在前面的ATTENTION:用memset初始化非char型(eg.int型、float型…)数组时,假如初始化值非0,可能导致错误的结果。先举个通常用法的栗子,将int型数组arr的元素初始化为0:intarr[5];memset(arr,0,sizeof(int)*5);假如初始值不为0,会如何呢?例如设置为1:使用memset(arr,1,sizeof(int…

    2022年10月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号