首页 > 其他分享 >vue+tsc+noEmit导致打包报TS类型错误问题及解决方法

vue+tsc+noEmit导致打包报TS类型错误问题及解决方法

时间:2024-01-17 18:13:12浏览次数:32  
标签:noEmit vue TS tsc vite 打包 build

当我们新建vue3项目,package.json文件会自动给我添加一些配置选项,这写选项基本没有问题,但是在实际操作过程中,当项目越来越复杂就会出现问题。本文列举一个目前我遇到的一个问题:打包后报了一堆TS类型错误,怎么消除这些错误?

项目环境:Vue3 + Vite + TS

当项目进行打包时候,突然发现终端有几十项报错

npm run build

详细报错信息如下:

截图图片如下:

 

打包执行的是npm run build命令,那么具体执行了什么呢?我们查看package.json中配置项。

  "scripts": {
    "dev": "vite",
    "build": "vue-tsc --noEmit && vite build",
    "preview": "vite preview"
  },

 

可以发现在build时,执行了vue-tsc --noEmit && vite build,其中

  • vue-tsc:Vue 官方提供的命令,用于执行 TS 的类型检查。它在执行时会根据项目中的 tsconfig.json 文件配置进行类型检查
  • --noEmit:TS 编译器的选项,使用 --noEmit 选项后,编译器仅执行类型检查,而不会生成任何实际的编译输出

所以可以看出了,在打包的时候编译器执行了TS类型检查,所以才报了一堆错,类型错误最终不会影响项目的正常运行

 

解决

  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },

另外项目通常在编译时候,也会对我们引入的一些依赖包进行类型校验,我们并不需要这个操作,所以可以在tsconfig.json中设置如下:


 "compilerOptions":
{
   "skipLibCheck": true,

}

设置后编译器不会检查库文件中的类型定义是否正确,也不会对库文件的使用进行类型检查。

再次打包就非常顺利~

 

 

标签:noEmit,vue,TS,tsc,vite,打包,build
From: https://www.cnblogs.com/j-a-h/p/17970669

相关文章

  • vue3+lottie-web加载json格式动画
    项目中要用动画设计说gif会失真,用json格式动画吧。我虎躯一震,json格式动画什么鬼?lottie库什么鬼。。。。不废话,直接上重点环境:编辑器webstorm,前端技术栈vue3+vite+ts安装lottie-webyarnaddlottie-web引入lottie,引入json格式动画文件.importlottiefrom'lott......
  • RTSP/Onvif安防视频云平台EasyNVR迁移盘符后启动异常的问题排查与解决
    EasyNVR安防视频云平台可支持设备通过RTSP/Onvif协议接入,并进行视频流的处理及分发,在视频监控场景中可实现视频实时监控直播、云端录像、云存储、录像检索与回看、告警、级联等,平台能将拉取过来的音视频流转化成适合全平台播放的RTMP、RTSP、hTTP-FLV、Websocket-FLV、HLS、WebRTC......
  • vue-element-admin/litemall后端,超过两级嵌套路由无法缓存的问题
    本文主要针对的是litemall后端,vue-element-admin只需稍作修改应该也可以适用。路由扁平的思路主要来源于https://blog.csdn.net/weixin_40119256/article/details/111475571,另外解决面包屑显示问题,此文章作记录以供有需要的同行参考。keep-alive用于缓存不活跃的组件实例,避免重......
  • vue-element-admin关闭标签跳转到前一个标签,而不是最近的标签
    vue-element-admin中关闭标签跳转到前一个标签,而不是最近的标签。场景:先后打开A和B标签,接着从A标签页面内部跳转到C标签(A和C存在紧密关系)。这时如果关闭C标签,默认跳转到最近的B标签而不是A标签。如果A和C中间隔着很多标签,这种场景很难在找回A标签的位置。期望跳转时从A跳转到C处......
  • DOTS Instancing合批:如何针对单个渲染实体修改材质参数
    DOTSInstancing合批:如何针对单个渲染实体修改材质参数   最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去......
  • echarts 常用的自定义组件
    一、自定义tooltip:多条曲线,series中name过长,鼠标悬浮时,文字过长,展示样式需自定义tooltip:{trigger:'axis',formatter:function(params){if(!params||params.length==0){return}varresult='<divstyle="padding-bottom:5px;">&#......
  • 使用Bootstrap方法在Python中绘制带有置信带的ROC曲线
    Bootstrap方法是一种统计学方法,在样本数据有限的情况下,通过随机重采样的方式来估计样本统计量的分布。通过应用Bootstrap方法,我们可以通过对训练数据进行多次重采样,并在每次重采样后重新拟合模型,得到多个ROC曲线。然后,我们可以使用这些ROC曲线的结果来计算置信带,以评估模型的稳定性......
  • 你不知道的vue3:使用runWithContext实现在非 setup 期间使用inject
    前言日常开发时有些特殊的场景需要在非setup期间调用inject函数,比如app中使用provide注入的配置信息需要在发送http请求时带上传给后端。对此我们希望不在每个发起请求的地方去修改,而是在发起请求前的拦截进行统一处理,对此我们就需要在拦截请求的函数中使用inject拿到app注入的......
  • 鸿蒙ArkTs,重新配置签名(真机运行报错而控制台没有报错的解决方法)
     找到如下路径,删除该代码段,重新认证。 找到项目结构  重新配置签名 点击SignIn,会自动跳入华为官网,登录华为账号后,授权登录,弹出如下页面 再次回到IDE,会弹出如下页面,点击Agree同意   随后IDE会自动生成签名文件,点击OK后,会看到根目录的build-profile.json......
  • G. Lights
    原题链接太巧妙了!!关键1:把开着的灯当成黑点看待关键二:如图更多细节请看代码code#include<bits/stdc++.h>usingnamespacestd;intto[100005];//代表会被我影响的灯,抽象成边voidsolve(){intn;intstate[100005]={0};//代表每个灯的状态int......