【Vite】快速入门及其配置

概述

Vite是前端构建工具。vite

相较于webpack,vite采用了不同的运行方式:

  • 开发时,并不对代码打包,而是直接采用ESM的方式来运行项目
  • 在项目打包部署时,使用 rollup 对项目进行打包
  • 除了速度外,vite使用起来也更加方便

默认项目源码目录就是根目录,而不像 webpack 那样是 src 目录。

我们可以初始化一个工程:

sh 复制代码
npm init 
npm i vite -D
html 复制代码
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta
    name="viewport"
    content="width=device-width, initial-scale=1.0"
  >
  <title>Document</title>
  <script
    type="module"
    src=./index.js
  ></script>
</head>

<body>
  <h1>Vite demo</h1>
</body>

</html>
js 复制代码
document.body.insertAdjacentHTML('beforeend', '<h1>Hello Vite!</h1>')

然后执行 :

sh 复制代码
npx vite 

启动项目,并且自动支持热更新和启动服务器。

npx vite build进行项目打包,且使用 的是 ESM。但是 ESM 必须通过 url的方式进行加载,也就是说,使用打包后的 html 不能运行项目,必须使用 http / https 才可以,所以需要通过服务器打开项目。

但是 live server 也不可以,live server 的根目录配置有问题,默认配置的根目录是项目目录,我们还需要改为 dist 目录。

所以要么通过将 dist 放在服务器运行,要么 执行 npx vite preview 运行。

vite是开发服务器,并不对项目进行打包;而vite preview是打包后的预览服务器。

配置

一般的 style,css(sass, less 等),图片处理 等一系列常用配置 vite 已经内置了,无需我们手动配置。

要想为传统浏览器提供支持(es6 -> es5),可以按下面这样使用官方插件 @vitejs/plugin-legacy:

sh 复制代码
$ npm add -D @vitejs/plugin-legacy
js 复制代码
// vite.config.js
import legacy from '@vitejs/plugin-legacy'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [
    legacy({
      targets: ['defaults', 'not IE 11'],
    }),
  ],
})

legacy 在打包时需要插件 terser(用于压缩代码),所以还需要装:

sh 复制代码
npm i terser -D 
相关推荐
福兮说6 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理7 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
专业程序开发源7 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源7 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆6667 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
凤城老人7 小时前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
Dovis(誓平步青云)8 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan8 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_9 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒9 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端