webpack搭建的React脚手架项目与vite进行兼容化开发

React项目兼容vite开发

问题描述

前言:之前在做Vue开发项目的过程中,是使用vite搭建的项目,不论是启动速度还是热更新,都非常的丝滑,可以极大弥补我电脑的短板,也提升了我的开发体验!

由于电脑是大一上学的时候买的,在时间以及本人的摧残下,确实在性能方面与最新款的电脑无法媲美;而且在开发的时候非常的不友好。跑一个项目电脑得跑5分钟左右,甚至更高,简直拉跨至极!

最近做react项目,当项目逐渐庞大之后,发现采用webpack搭建的React脚手架,启动非常慢(核心主要是电脑也不太行了),从而导致每次跑项目都难受的不行。所以今天就尝试着在webpack搭建的React脚手架项目当中兼容一下vite,从而提升项目启动的丝滑度。

需要什么?

首先,你的项目是使用React脚手架去创建的,此时你的需求是需要借助vite来提升项目的启动速度,而且,为了不破坏之前的webpack的环境,两者需要进行兼容,换句话讲,就是项目既可以使用webpack去启动开发,也可以使用vite。

具体操作流程如下

1. 安装vite以及vite支持react的模板插件
	npm i vite @vitejs/plugin-react -D
2. 在项目的根目录中添加vite.config.js文件
	import { defineConfig } from 'vite';
	import react from '@vitejs/plugin-react';
	import { resolve } from 'path';
	 
	export default defineConfig({
	  plugins: [
	  	react()
	  ],
	  resolve: {
	    alias: {
	      '@': resolve('src'),
	    },
	  },
	});
	
3.  由于webpack与vite对与index.html文件的存放位置不同,
	所以需要将之前public当中的index.html文件重新copy一份
	到你的项目根目录;

	注意:以下几个细节需要改一下
		1.  需要将用到 %PUBLIC_URL% 的地方,将 %PUBLIC_URL% 去掉,否则在后续流程中vite将会编译不通过
			[vite] Internal server error: URI malformed
			会报出这个错误
		2.  创建 root 容器
		3. 将之前的项目入口文件引入
			<script type="module" src="/src/index.js"></script>
4. 额外配置package.json的scrips脚本
	"dev": "vite"

在配置完上面的操作之后,此时项目在启动的时候还会遇到一个问题,就是项目无法编译jsx,
The esbuild loader for this file is currently set to “js” but it must be set to “jsx” to be able to parse JSX syntax. You can use “loader: { ‘.js’: ‘jsx’ }” to do that.
会报出上面的错误导致页面无法加载。

解决方案
首先,这块需要用到一个插件,

npm i @babel/plugin-transform-react-jsx -D

安装完以后,需要在vite.config.js当中去配置一下

plugins: [
    react({
      babel: {
        plugins: ['@babel/plugin-transform-react-jsx']
      },
    })
  ],

到现在,就可以去采用vite启动你的React项目了。

此时启动项目的时候,楼主还遇到一个问题,就是我在配置菜单栏的时候引用了antd的icon的组件,然后webpack可以正常运行,vite搭建的会报一个错误
ReferenceError: React is not defined
at index.js:18:11
在这里插入图片描述
这个时候,需要在这个文件当中将React导入,就解决了。

import React from 'react';

以上只是在不依赖其他额外的技术栈上最简化的将webpack与vite进行兼容开发,如果使用一些antd按需加载或者是postcss或者是commonjs与es6的导入问题以及其他技术问题,可能会产生其他的问题,楼主在这就不详细往出细说了。遇到这些问题的话,就需要大家亲自去解决一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值