vue3引用ElementPlus出错|如何在vue中引用TypeScript

具体错误:直接套用elementplus官方文档里的模版,报错:

Module parse failed: Unexpected token……You may need an additional loader to handle the result of these loaders.

简单来说就是elementplus我能用,用不了的是它写了ts语法的地方,这个很关键,如果你连基本的elementplus都用不了,那么这篇博客不适合你哦,可以参考我的这篇博客:

http://t.csdn.cn/fgD4Ohttp://t.csdn.cn/fgD4O这该死的bug改了一天,查遍全网博客,终于让我琢磨出来了!很无语的是怎么就没有一篇是适合我的。。浅记一下,或许能帮到遇到的问题和我一样的大冤种😭


我尝试了以下办法,都是失败告终:

1.将<script lang="ts" setup> 中的lang="ts"去掉

❌不行,治标不治本,会导致ts语法用不了(vue文件中),如import type { FormInstance, FormRules } from 'element-plus'就会报错,这样子你后面的很多方法都实现不了

2.更有甚者,直接自暴自弃,将用到FormInstance, FormRules的地方全部删掉,那么这用element还有啥用?不如直接写html好吧。

3.去改某处 webpack.config.js的配置。现在想想真的很傻,vue3的配置是在vue.config.js里啊,就在很显眼的根目录下,改他就得了呀非要费尽心机去找 webpack.config.js。。


解决办法

1.配置Vue-Loader

npm install -D vue-loader vue-template-compiler

Why:

 想了解更多的请移步官方文档https://vue-loader.vuejs.org/zh/#vue-loader-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9Fhttps://vue-loader.vuejs.org/zh/#vue-loader-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F


2.引入Typescript包

npm install --save-dev typescript
npm install --save-dev ts-loader

 3.修改vue.config.js

vue页面该咋写还是咋写,一点不用改。

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true
})
module.exports = { configureWebpack: {
  resolve: {
    extensions: [".ts", ".tsx", ".js", ".json"],  
     alias: {}
  },
  module: {        
    rules: [    
      {    
        test: /\.tsx?$/,    
        loader: 'ts-loader',    
        exclude: /node_modules/,    
        options: {
          appendTsSuffixTo: [/\.vue$/],    
        }    
      }        
    ]    
  }    
}
}




4.根目录下创建tsconfig.json

代码如下:

{
    "compilerOptions": {
      "experimentalDecorators": true,
      "emitDecoratorMetadata": true,
      "lib": ["dom","es2016"],
      "target": "es5"
    },
    "include": ["./src/**/*"]  
}

5.创建ts文件

src目录下创建一个ts文件,如test.ts,该文件里面什么都不用写。Why?

因为有了tsconfig.json后,VScode会自动在includeexclude包含的范围中查找ts文件,如果找不到ts文件就会报错,当在includeexclude范围中添加了ts文件,VScode就不会报错了。

没写报错:[tsl] ERROR       TS18003: No inputs were found in config file 'tsconfig.json'. Specified 'include' 

Over!!

重新编译运行,组件正常显示并且功能正常!问题解决啦!制作不易,欢迎点赞收藏哦!

  • 36
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论
vue3+typescript+elementplus的项目使用vite作为构建工具,你可以按照以下步骤进行下载和引用vite: 1. 首先,使用npm初始化一个vite项目。在终端运行以下命令: ``` npm init @vitejs/app vue3-vite-ts-elementplus --template vue-ts ``` 这将创建一个基于vue3+typescript+elementplus的vite项目。 2. 项目初始化后,默认没有安装router和vuex,你需要使用npm安装它们。在终端运行以下命令: ``` npm i vue-router@next vuex@next -S ``` 3. 接下来,你需要安装三个额外的插件,以实现按需引用。在终端运行以下命令: ``` npm i unplugin-vue-components unplugin-auto-import unplugin-element-plus ``` 4. 在项目的配置文件(一般是vite.config.js),添加以下代码: ```javascript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import ElementPlus from 'unplugin-element-plus/vite' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' export default defineConfig({ plugins: \[ vue(), ElementPlus({ useSource: true }), AutoImport({ resolvers: \[ElementPlusResolver()\] }), Components({ resolvers: \[ElementPlusResolver()\] }) \] }) ``` 这样,你就成功下载和引用了vite,并配置了按需引用的插件。 请注意,安装unplugin-element-plus之前,你需要先添加sass和sass-loader依赖。 希望这个回答对你有帮助! #### 引用[.reference_title] - *1* [vue3+TypeScript+vite+ElementPlus项目创建及后续优化](https://blog.csdn.net/qq_41854262/article/details/119668655)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [vite+vue3+typeScript+elementPlus(elementUI)搭建项目](https://blog.csdn.net/qq_36462217/article/details/129468816)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天又有什么bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值