首页 > 其他分享 >系统化学习前端之vite

系统化学习前端之vite

时间:2023-03-06 17:03:49浏览次数:62  
标签:plugin 前端 配置 js react config vite 系统化

前言

”天下苦 webpak 久矣“。webpack 虽然解决了前端工程化的问题,但是 webpack编译打包过程中自身性能的问题随着项目代码的增长逐渐暴露出来,老前端们开始追求开发体验和项目构建速度,新一代前端构建工具应运而生,vite 闪亮登场(vite logo 是个闪电唉)。

vite

vite 是由两部分构成:

  1. 一个开发服务器,它基于原生 ES 模块提供了丰富的内建功能,如速度快到惊人的模块热更新(HMR)。

  2. 一套构建指令,它使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。

简而言之,vite 提供一个开发服务器,提高开发效率;vite 提供一套指令,vite 指令执行优化后配置的 Rollup 操作,简化配置优化性能。

vite 的工作原理

首先要明确一点:当前浏览器默认是支持 ES Module 模式的。因此,vite 是通过 Rollup 优化并输出 ES Module 模式的 bundle 文件,应用与浏览器即可。

注意:浏览器因同源策略问题,请求 bundle 文件需要通过服务器,HTML 文件通过 script 标签引入ES Module 的 bundle 文件,需要指定 type="module" 属性。

vite 处理样式资源

vite 处理 css 资源无需配置,直接导入 css 资源即可。

vite 处理 less 资源,只需安装 less即可,无需配置,导入 less 资源即可。

npm install -D less

vite 处理 scss 资源,只需安装 sass 即可,无需配置,导入 scss 资源即可。

npm install -D sass

vite 处理样式前缀,需安装 postcsspost-preset-env,配置 postcss.config.js 即可。

npm install -D postcss post-preset-env

postcss.config.js

module.exports = {
  plugins: [
    require('postcss-preset-env')
  ]
}

vite 处理 ts 资源

vite 处理 ts 资源无需配置,直接导入使用即可。

vite 处理图片资源

vite 处理图片资源无需配置,直接导入使用即可。

vite 处理 vue 资源(vite4 + vue3)

vite 处理 .vue 单文件组件。需要安装 @vitejs/plugin-vue ,并配置 vite.config.js。

  1. 安装依赖

    npm isntall -D vue
    npm install @vitejs/plugin-vue -D
    
  2. 配置 vite.config.js

    vite.config.js

    import vue from '@vitejs/plugin-vue'
    
    export default {
      plugins: [
    	vue()
      ]
    }
    
  3. 如果报错 Error: Cannot find module 'node:xx' , 则配置 package.json。

    package.json

    "type": "module"
    
  4. 如果报错 [vite] Internal server error: Failed to load PostCSS config,则配置 postcss.config.js。

    修改 postcss.config.js -> postcss.config.cjs

  5. 执行指令

    npx vite
    

vite 处理 react 资源(vite4 + react18)

vite 处理 .jsx 文件。

  1. 安装依赖

    npm install -D react  
    npm install -D @vitejs/plugin-react
    
  2. 配置 vite.config.js

    import react from '@vitejs/plugin-react'
    
    export default {
      plugins: [
    	react(),
      ]
    }
    
  3. 如果报错 [vite] Internal server error: Failed to parse source for import analysis because the content contains invalid JS syntax. If you are using JSX, make sure to name the file with the .jsx or .tsx extension. ,两种办法解决。

    • 安装配置 @babel/plugin-transform-react-jsx

      安装依赖

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

      配置 vite.config.js

      import react from '@vitejs/plugin-react'
      
      export default {
        plugins: [
      	react({
      	  babel: {
      		plugins: [ '@babel/plugin-transform-react-jsx' ],
      	  }
      	}),
        ]
      }
      
    • 修改 main.jsmain.jsx

      index.html 更改引入

      <script src="./src/main.jsx" type="module"></script>
      
  4. 如果报错:Uncaught ReferenceError: React is not defined ,则报错文件导入 react。

    import React from 'react'
    

注意:上述资源处理,代码可参考 vite-demo 项目

后记

vite 相关配置有很多,目前没有太多时间去梳理,慢慢来,还是要搬砖的,少年。

标签:plugin,前端,配置,js,react,config,vite,系统化
From: https://www.cnblogs.com/huangminghua/p/17184475.html

相关文章

  • 一文吃透前端低代码的“神仙生活”
    今天来说说前端低代码有多幸福?低代码是啥?顾名思义少写代码……这种情况下带来的幸福有:代码写得少,bug也就越少(所谓“少做少错”),因此开发环节的两大支柱性工作“赶需求”和......
  • 前端老赵一次给你讲透“微前端”架构
     一、引言:随着Web应用程序的规模和复杂度的不断增加,前端技术也在不断发展和演进。微前端是近年来兴起的一种前端架构模式,通过将大型Web应用程序拆分为小型、可独立开发......
  • vue 前端导出
    1.安装依赖npminstall-Sxlsxnpminstall-Sxlsx-style2、导出export插件封装utils/exportExcel.js/** *@file导出export插件封装 */ import*asstyle......
  • 【前端】一个更底层库-React基础知识
    (目录)这一篇学习React知识点。分别从属性状态和相关API了解一下。属性状态属性状态要知道这几个PROPS,PROPVALIDATION,STATE。PROPS通过this.props可以获取传递给该......
  • 一篇文章介绍清楚前端可视化开发工具
    在数字化信息丰富发展的当下,为了适应互联网的快速发展和激烈竞争,前后端分离已经成为趋势。那么,大家知道前端可视化开发工具吗?都有哪些具体内容?今天,流辰信息低代码开发服务......
  • 前端设计模式——工厂模式
    前端中的工厂模式是一种创建对象的设计模式,它可以让我们封装创建对象的细节,我们使用工厂方法而不是直接调用new关键字来创建对象,使得代码更加清晰、简洁和易于维护。在前......
  • JS-表单提交及前端MD5加密问题
    【目标】前端提交密码,通过MD5加密后,浏览器抓包看到的表单信息中,密码是加密后的。【问题】密码加密后输出是加密后的,但是抓包看到的表单数据是明文密码。【问题代码】1......
  • 前端面试题(第 3 期)
    你好,欢迎大家在有空的时候做客【江涛学编程】,我是小编岩家兴,很高兴认识你!先做十题压压惊●这位选手,你有了解过ETag吗?那你讲讲304缓存原理吧?●这位选手,请你聊聊你所知......
  • 低代码平台前端的设计与实现(四)组件大纲树的构建设计
    在上篇文章,我们已经设计了一个简单的设计态的Canvas,能够显示经过BuildEngine生成的ReactNode进行渲染。本文,我们将继续上一篇文章的成果,设计并实现一个能够显示组件节点大......
  • 前端——web登录
    登录并进行后台数据接收设置静态文件,实现静态分离1.配置staticSTATIC_URL='/static/'STATICFILES_DIRS=[#如没有需要新加os.path.join(BASE_DIR,'web......