本文转载自微信公众号「粥里有勺糖」,作者粥里有勺糖 。转载本文请联系粥里有勺糖公众号。

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站设计、成都外贸网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的文县网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
在做存量项目接入Vite测试时发现,存量(老)项目中很多是直接在js中书写jsx语法,使用Vite启动时就会抛出一堆问题Failed to parse source。
不嫌麻烦可以跑个脚本批量修改文件类型,这是一个解决办法。
为了刨根知底,同时为了存量项目最低成本的接入Vite使用,尽力避免修改业务代码。得寻找其它办法解决一下。
报错截图如下
初始化demo项目
- # npm 6.x
 - npm init vite@latest my-react-app --template react-ts
 - # npm 7+, extra double-dash is needed:
 - npm init vite@latest my-react-app -- --template react-ts
 - # yarn
 - yarn create vite my-react-app --template react-ts
 
目录如下
- ├── index.html
 - ├── package.json
 - ├── src
 - | ├── App.css
 - | ├── App.tsx
 - | ├── favicon.svg
 - | ├── index.css
 - | ├── logo.svg
 - | ├── main.tsx
 - | └── vite-env.d.ts
 - ├── tsconfig.json
 - └── vite.config.ts
 
启动
- npm run dev
 
页面正常,接下来将App.tsx修改为App.js
将会得到上述的报错
按照文档描述在配置文件添加一点配置
- export default defineConfig({
 - build:{
 - rollupOptions:{
 - input:[]
 - }
 - },
 - optimizeDeps: {
 - entries: [],
 - },
 - })
 
通过阅读@vite/plugin-react的文档[2],发现其支持传入babel插件
- npm i @babel/plugin-transform-react-jsx
 
添加插件
- import { defineConfig } from 'vite'
 - import react from '@vitejs/plugin-react'
 - // https://vitejs.dev/config/
 - export default defineConfig({
 - plugins: [react({
 - babel: {
 - plugins: ['@babel/plugin-transform-react-jsx'],
 - },
 - })],
 - })
 
再次启动验证,发现一个报错
原因是没有在App.js中引入React,咱们引入一下
- import React,{ useState } from 'react'
 
大功告成
两种处理方案
第二种方法会一定程度影响项目的启动速度。读者可以根据实际项目情况pick方案
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号