webpack5 基础配置(7) eslint-ts的使用和在webpack中的配置 加载vue文件

2023-11-15

上一节最后讲到了typescript的使用,ts-loader本质上也是利用与tsc,所以安装ts-loader的同时需要安装typescript。如果你没安装typescript,在你安装ts-loader的时候,会根据ts-loader的依赖继续安装typescript

在这里插入图片描述
继续上节的问题,ts中使用Promise等特性,tsc会自动加上profill吗?答案是不会。

所以我们要通过babel来编译

babel不需要依赖ts-loader。在这里插入图片描述
只有babel-loader是不够的,我们还需要借助预设,类似于preset-env一样,react,或者ts都有自己的预设@
在这里插入图片描述
官网说了推荐使用预设。使用
在这里插入图片描述
打包后
在这里插入图片描述
打包成功。在这里插入图片描述
加上Promise试试。
在这里插入图片描述
没有转化,为什么呢?按道理babel通过预设进行转化时,是会加上Profill的。
原因:在这里插入图片描述
当我们的useBuiltIns设置为entry时,是需要引入两个包的。而且开发过程中很多时候都是用usage的,
在这里插入图片描述
打包
在这里插入图片描述
可以看到这次的代码跟上次的截然不同,加上profill了。
在这里插入图片描述
别忘记加上exclude,因为有些库自己实现了ts的转化,我们不需要插手。

ts-loader与babel-loader的选择

babel-loader优点是帮我们加上了profill。缺点是,不会对我们的代码进行类型校验。
ts-loader是会对类型进行检测的。
在这里插入图片描述
这里虽然报错了,但是用babel-loader还是能正常打包的,但是如果使用ts-loader的话,就会报错,打包失败。
那我们希望既要有profill,也要有类型检测。
ts官网也提示我们,可以使用Babel进行转化,然后使用tsc进行类型检测。
怎么使用呢。在这里插入图片描述
我们可以在build之前,先用tsc进行检测。
在这里插入图片描述
可以看到已经检测出来了,我们改完再试试
在这里插入图片描述
正常,所以这时候我们就可以安心通过babel-loader进行打包了。
在这里插入图片描述
但是tsc会自动转化js文件,解决办法,tsc后面加上–noEmit
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结合版,每次npm run build都会先进行检测。
在这里插入图片描述
可以看到生效了。
每次都是编译才检测,我们其实可以监听ts文件的变化。在这里插入图片描述
加上watch属性,就会开启监听模式,一旦你代码编写完保存后,就会进行检测。这样就在你编写代码的时候发现错误。
这就是ts转化的最佳方式了,babel-loadet+tsc检测

小结,ts文件转换时,是有两种,一种是tsc与ts-loader,其实ts-loader也是依赖于tsc的。另一种是babel-loader搭配预设preset-typescript。两者的优缺点发呢比是,ts-loader会对代码进行类型检测,发现错误停止打包,但是不会自动加上Profill。而babel-loader搭配preset-typescript可以加上profill,设置效果同preset-env设置Porfill一样,都是通过useBuiltIns,一般使用第二个值,useage,它会根据代码需要的自动加上对应得Profill。但是babel-loader不会进行类型检测。但我们代码有类型错误时,babel-loader是可以打包成功的。所以ts官网推荐我们结合tsc+babel-loader进行搭配。如可以先通过tsc --noEmit进行检测,或者通过tsc --noEmit --watch监听ts文件的变化,一旦错误立马报错,然后正常才使用Bbael-loader,这也是转化ts最好的办法。

认识ESLINT

静态代码分析工具(在没有任何代码执行的情况下,对代码进行分析)
eslint也是以来js得编译器,通过编译器检查哪些代码写的不合理
安装
cnpm install eslint -D(局部安装)
然后要配置我们的规则,eslint才会通过我们设置的规则去检查代码。
在这里插入图片描述
通过我们重重选择,.eslintrc.js文件诞生了
在这里插入图片描述
parseOptions:里面还有一个默认属性parse,指定eslint使用的js编译器。默认是espree,然后可以词法分析,语法分析,AST树。再通过eslint检查。
rules是可以自己定义的规则。
这个是我通过选择检查代码和查找错误,并且选择了react作为框架,然后有ts。eslint就会提示我们要不要安装对应的插件,因为生成得.eslintrc.js文件里面需要用到,如图
在这里插入图片描述
extens是继承,可以继承其他插件的规则。parser得解析器变成了@typescript-eslint/parser
plugins是插件。
第三个是通过vue
在这里插入图片描述

小结,

在这里插入图片描述

env对应的是适合的浏览器,es,还有模块化选择。extends一般用于框架的时候,要继承其他插件的规则。parserOptions主要是用来解析得东西,如里面的parser属性就是设置编译器的。plugins是使用了哪些插件。rules是用来编写自己的规则的。eslint本质也是要依赖于js编译器,他也会将js代码进行词法分析,转成tokens数组,然后在进行语法分析,转成AST树,遍历AST树,使用eslint得插件进行检查,有错误再报。

使用npx eslint 文件路径
p
检查生效了,因为我们设置的是commonjs,所以我们需要重新配置一下
在这里插入图片描述
在parserOptions上配置。然后npx eslint检查后,没有报错,证明生效了。
在这里插入图片描述
可以看到可以正常使用了。并且报定义了一个变量但未使用。有时候我们开发需要,所以这个报错规则我们改一下。
我们一般可以这么配置,找到报错的地方
在这里插入图片描述
拿到最后面的no-unused-vars,未使用的值
然后,off 关闭, wran报警高不报错, error报错 // 0=off 1=warn 2===error
在这里插入图片描述
来到我们的配置文件,把该规则关闭掉。
我们这个eslint还是相对较弱的,我们改一个强一点的,继承谷歌的插件规则在这里插入图片描述
可以看到,报错了很多错误。在这里插入图片描述
现在我们改下规则,全部为警告在这里插入图片描述
可以看到,生效了在这里插入图片描述
但如果我们想设置值呢,比如两个双引号会报错,我们可以把它关掉,或者给他设置成一个双引号报错,两个双引号不报错。操作如下:
在这里插入图片描述
更多的配置可以上官网看看。

vscode的eslint插件

在这里插入图片描述
这个插件会读取当前目录下的.eslintrc.js文件,通过里面的规则进行检测
在这里插入图片描述
在这里插入图片描述
ESLINT的插件已经正常使用了。
在这里插入图片描述
格式化代码的工具配置
在这里插入图片描述
一般通过目录下建立一个prettierc的文件,配置规则。
在这里插入图片描述
如图,代码长度为40,也就是当我们按下右键格式化代码后,代码长度大于40的会自动换行。

利用eslint-loader来帮助我们自动检测在这里插入图片描述

需要把eslint-loader放后面,先检测,再转换。当我们npm run build后
在这里插入图片描述
直接先报错了。

加载vue文件

在这里插入图片描述
老错误了,使用vue-loader,而且vue文件里面有template,这块也是要转换成js的,所以还需要一个vue-template-complier
在这里插入图片描述
new VueloaderPlugin()后,打包一下,报错了,不过这次是因为样式问题。

很简单,只需要配置下css-loader就行
在这里插入图片描述
可以看到打包成功了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webpack5 基础配置(7) eslint-ts的使用和在webpack中的配置 加载vue文件 的相关文章

随机推荐

  • (动手学习深度学习)第4章 房价预测(实战kaggle比赛)

    赛前分析 kaggle竞赛地址 california house prices 数据分析 竞赛大佬方法 它们都是使用集成学习的方法 来集成学习多个模型 第二名和第七名 autogluon 第三名 h2o 第四名 随机森林 代码实现 导入相关
  • c语言文件压缩怎么求压缩比,文件压缩C语言程序设计报告.doc

    文件压缩C语言程序设计报告 课程设计目的 1 巩固和加深学生对C语言课程的基本知识的理解和掌握 2 掌握C语言编程和程序调试的基本技能 3 利用C语言进行基本的软件设计 4 掌握书写程序设计说明文档的能力 5 提高运用C语言解决实际问题的能
  • es模糊查询

    Elasticsearch支持多种模糊查询 包括Wildcard查询 Fuzzy查询 Regexp查询和Match查询 这些查询可以用于执行模糊匹配 拼写纠错 范围查询等操作 下面是这些模糊查询的详细介绍 1 Wildcard 查询 Wil
  • 设置显示实体的颜色 byLayer/byBlock

    在CAD界面上显示时 其颜色属性可以设置为byLayer或者byBlock byLayer 实体的颜色和实体所在的图层保持一致 byBlock 实体的颜色和实体所在的块保持一致 但是 块中的实体都是一个个独立的对象 相互之间并没有直接的联系
  • JavaScript实现倒计时功能

    封装时间函数 代码如下 function getTime var t new Date var y t getFullYear var m t getMonth 1 gt 10 t getMonth 1 0 t getMonth 1 var
  • linux错误码_Linux 中断/异常的准备与退出

    本文讨论一下linux下x86平台关于中断 异常的准备与退出 主要关注点在于进入C语言部分前与退出C语言部分后汇编 C代码所处理的上下文切换部分 关于内容的说明 使用的内核版本为5 5 13 主要介绍64位下的内核实现 资料 引据都在最下方
  • 虚拟机实现服务器冗余,舰船公共计算服务虚拟机优化设置与冗余研究

    摘要 舰船公共计算服务中虚拟机优化设置与冗余方案是公共计算服务系统稳定性设计的一个关键问题 本文在保证舰船业务运行稳定的前提下 设计舰船刀片服务器虚拟机优化设置方案 追求舰船计算资源的高利用率 并针对舰船业务重要性与紧急性要求的不同 提出一
  • 【机器学习】集成学习+代码实现

    1 概念与分类 集成学习 ensemble learning 构建并结合多个学习器 先学习基学习器 再根据某种策略结合起来 结合可以是 集成不同算法 集成同一算法不同设置 数据集分成多部分分给不同分类器的集成 分类 bagging boos
  • 视觉基础算法

    找到一篇PPT 对于基础知识点的总结比较好 需要自己去深挖知识 链接 一 图片灰度化 灰度化有多种方式 可以根据自己的需求自己定制 这里列举三种常用的方式 将彩色图像的R G B三分量的亮度之一作为灰度图像灰度值 Gray B or Gra
  • 浏览器播放rtsp视频流方案(ffmpeg + nginx转m3u8)

    1 下载ffmpeg 传送门 https ffmpeg en softonic com 2 配置环境变量 右击我的电脑 gt 点击属性 打开左侧高级系统设置 点击下方的环境变量 在下方系统变量中找到path变量 选中点击下方编辑 别点成删除
  • 嵌入式---c语言变量范围及生命周期和定义声明

    嵌入式 c语言变量范围及生命周期 1 局部变量和全局变量 变量分为局部变量和全局变量 因为有的变量只能在本程序中使用 而有的变量可以在其他函数中使用 这就是变量作用域问题 1 1局部变量 定义 只能在一定范围内使用的变量称为局部变量 例如
  • MATLAB--卡尔曼滤波

    利用matlab来实现卡尔曼滤波 一个简单的例子 clear all clc close all 利用卡尔曼滤波算法来估计状态值 定义状态转移矩阵和观测矩阵 syms x u h x x exp x 3 2 x 2 H diff h x f
  • nodejs服务器响应头,nodejs-getpost提交http请求响应

    理解表单使用post方式提交数据时后端接收数据的方法 理解表单使用get方式提交数据时后端接收数据的方法 理解post和get的区别 记住请求报文的组成 记住响应报文的组成 fs模块 进行目录和文件操作 readFile 读文件 write
  • Java+seleinum+IDEA环境搭建

    本机Win7 64位 chrome36 IDEA Java 8 selenium3 1 安装Java 本地安装Java8的jdk 配置环境变量 具体方法自己百度 2 安装IDEA 默认安装即可 3 安装selenium及驱动 a 下载sel
  • python append 覆盖数据

    更多文章详见 python append 覆盖数据 自我的进化https www shanxing top p 205 问题 使用append为list添加object的时候 有时候会出现后面的object将前面的几个给覆盖的情况 原因 当
  • QT里的网络通信简介

    QTcpSocket类简介 QTcpSocket类提供了一个TCP套接字 TCP 传输控制协议 是一种可靠的 面向流的 面向连接的传输协议 它特别适合数据的连续传输 QTcpSocket是QAbstractSocket的一个子类 它允许您建
  • 图像分割评价指标: Dice, MIoU, MPA等

    目录 1 混淆矩阵 2 Dice 3 MIoU 4 MPA 仅为个人结合一些博客的理解 1 混淆矩阵 如果是k 1分类问题 就会生成 k 1 k 1 的混淆矩阵 具体定义可参见百度百科 下面以肺结节分割为例 显然这是一个二分类的问题 肺结节
  • 菜鸟求职记1

    熬过了黑色的六月 我和往届的学长学姐一样 背着书包 拎着行李箱 开始了XV的求职之路 忙里偷闲 今天没有招聘会 一整天都在寝室 想着这几天的忙碌身影 我觉着应该将此点滴记录下来 以激励我以后的人生 9月10日 我们早上5点多开始从延安赶往西
  • Tornado 多进程分析(转载)

    引子 Tornado 是一个网络异步的的web开发框架 并且可以利用多进程进行提高效率 下面是创建一个多进程 tornado 程序的例子 usr bin env python coding utf 8 import os import ti
  • webpack5 基础配置(7) eslint-ts的使用和在webpack中的配置 加载vue文件

    上一节最后讲到了typescript的使用 ts loader本质上也是利用与tsc 所以安装ts loader的同时需要安装typescript 如果你没安装typescript 在你安装ts loader的时候 会根据ts loader