前言

一直想 try Vite, 但一直没有机会。

今天突然 Live Server IP Address 手机连不上...也不知道是 Bug 还是怎么回事儿。

总之 IIS IP Address 没有问题. 那多半是 Live Server 有鬼. 借此机会把它给换了呗。

参考

Docs – Vite

Vite 介绍

简单说,Vite 可以用来替代 Webpack。

对比 Webpack. Vite 的优点是,超级快 (因为它底层是 esbuild), 配置简单。

因为目前我只用 Vite 来做 development 阶段开发,production 依然用 Webpack,

所以我也不清楚 Vite 的局限,但就 dev 开发而论 Vite 秒杀 Webpack 就是了。

拿 Vite 比 Webpack 其实不太公平,它俩不是同辈,Vite 应该要和未来的 Turbopack 比才合理,希望 Turbopack 找点可以替代 Webpack 吧。

Get Started

安装

npm install vite --global

创建项目

yarn create vite

有各种模板, 我是单侧所以选的是 Vanilla, TypeScript

进入项目并安装

yarn install

启动

vite --open

Sass

安装

yarn add sass --dev

只要安装 sass 就够了. 不需要任何 config. 直接把 .css 换成 .scss 就可以跑了.

PostCSS

参考: 兴杰 – PostCSS

安装插件即可,不需要装 PostCSS CLI 哦

yarn add postcss-preset-env --dev
yarn add postcss-nested --dev

如果使用 Yarn PnP 需要安装 PostCSS

yarn add postcss --dev

postcss.config.js

import postcssPresetEnv from 'postcss-preset-env';
import nested from 'postcss-nested'; export default {
plugins: [postcssPresetEnv({ stage: 1 }), nested()],
};

注:这里用的是 ES Module (.mjs) 不是 CommonJS 哦 (.cjs)

setup browserlist (在 package.json)

{
"browserslist": [
"since 2021 and not ios < 15"
]
}

完成,我们不需要任何 Vite config。它会自动去读 postcss.config.js 和 browserlist。

IP Address & HTTPS

创建 vite.config.ts

注:要支持 .ts 需要额外安装 yarn add @types/node --dev

import { defineConfig } from 'vite';

export default defineConfig({
server: {
host: '192.168.1.152',
port: 4200,
open: '/src/home/home.html',
https: {
cert: 'C:\\self-signed-certificate\\192.168.1.152.crt',
key: 'C:\\self-signed-certificate\\192.168.1.152.key',
},
},
});

https config 和 Live Server 是一样的。

注:open 可以指定开启的路径,这样就不需要 command --open 了,直接 vite 就够了。

Build Production

tsc && vite build

看样子它是先跑一轮 TypeScript compile 然后跑 vite build,就不知道 TypeScript compile 会不会有问题 (我印象中这个不加工直接跑很烂的),但目前测试是 ok 的。

Multiple Entry Points

for development 不需要额外配置,你的 .html 都可以直接访问到。

for build 才需要 config

import { defineConfig } from 'vite';
import pathHelper from "path";
import { fileURLToPath } from "url"; const __filename = fileURLToPath(import.meta.url);
const __dirname = pathHelper.dirname(__filename); export default defineConfig({
build: {
rollupOptions: {
input: [
pathHelper.resolve(__dirname, './src/home/home.html'),
pathHelper.resolve(__dirname, './src/about/about.html'),
pathHelper.resolve(__dirname, './src/**/*.html') // 也支持 glob 表达式
],
},
},
});

注:记得要装 yarn add @types/node --dev 哦。

Vite build production 时底层使用的是 rollup,multiple entry points 是通过底层 rollup config 实现的。

直接把路径连到 .html 就可以了

HTML 内会引入 .ts 这样就串起来了。

TODO

目前只用到上面几个功能, 以后有其它的再补上呗.

工具 – Vite的更多相关文章

  1. 轻量级工具Vite到底牛在哪——一文全知道

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://www.sitepoint.com/vitejs-front-end-build- ...

  2. 如何在 Vite 中使用 Element UI + Vue 3

    在上篇文章<2021新年 Vue3.0 + Element UI 尝鲜小记>里,我们尝试使用了 Vue CLI 创建 Vue 3 + Element UI 的项目,而 Vue CLI 实际 ...

  3. 手把手带你实现基于 Vite+Vue3 的在线Excel表格系统

    今天,葡萄带你了解如何基于Vite+Vue3实现一套纯前端在线表格系统. 在正式开始项目介绍之前,首先咱们首先来介绍一下Vite和Vue3. Vue3 2020年09月18日Vue.js 3.0发布, ...

  4. 如何开发一款基于 Vite+Vue3 的在线表格系统(上)

    今天,葡萄带你了解如何基于Vite+Vue3实现一套纯前端在线表格系统. 在正式开始项目介绍之前,首先咱们首先来介绍一下Vite和Vue3. Vue3 Vue是什么?大多前端开发者对这个词已毫不陌生了 ...

  5. 蒲公英 · JELLY技术周刊 Vol.10 为什么你还不使用 TypeScript

    登高远眺 天高地迥,觉宇宙之无穷 基础技术 直播延迟?为什么流媒体直播的延迟那么高 随着通信技术的发展,视频点播.直播业务也逐渐兴起.在这些业务形态中,流媒体技术扮演着重要的角色.但在实际使用中,即便 ...

  6. vue3 一些关键属性

    环境搭建 尤大开发了一个项目构建工具vite npm init vite-app <project-name> cd <project-name> npm install np ...

  7. 京东 Vue3 组件库闪亮登场

    京东零售开源项目 NutUI 是一套京东风格的轻量级移动端 Vue 组件库,是开发和服务于移动 Web 界面的企业级产品.经过长时间的开发与打磨,NutUI 3.0 终于要和大家见面了!3.0 版本在 ...

  8. 京东 vue3 组件库震撼升级,如约而至!

    京东零售开源项目 NutUI 是一套京东风格的轻量级移动端 Vue 组件库,是开发和服务于移动 Web 界面的企业级产品.经过长时间的开发与打磨,NutUI 3.0 终于和大家见面了!3.0 版本在技 ...

  9. 京东 Vue3 组件库支持小程序开发啦!

    源码抢先看: https://github.com/jdf2e/nutui NutUI 3.0 官网:https://nutui.jd.com/3x/#/ 小程序多端适配 设计初衷 在跨端小程序的开发 ...

  10. 爆款预订,2022 年最值得关注的后台框架 —— Fantastic-admin

    前言 如果 2021 年你还没有听说过 Fantastic-admin ,那即将到来的 2022 年可不要再错过了. Fantastic-admin 做为一款开箱即用的 Vue 中后台管理系统框架,距 ...

随机推荐

  1. 基于 Vagrant 手动部署多个 Redis Server

    环境准备 宿主机环境:Windows 10 虚拟机环境:Vagrant + VirtualBox Vagrantfile 配置 首先,我们需要编写一个 Vagrantfile 来定义我们的虚拟机配置. ...

  2. oeasy教您玩转vim - 30 - # 屏位行号

    ​ 屏位行号 回忆上节课内容 上次我们主要讲的翻页 :set scrolloff=2 控制上下留天留地 上下翻页(这个最常用) ctrl + f 向下一屏 ctrl + b 向上一屏 上下移屏一行 c ...

  3. sed 进阶使用

    sed 进阶使用 工作原理 sed 维护两个数据缓冲区: 活动模式空间 和 辅助保持空间 两者最初都是空的 sed 通过对每一行输入执行以下循环进行操作 从输入流中读取一行,删除任何尾随的换行符,并将 ...

  4. JMeter 配置元件之按条件读取CSV Data Set Config

    实践环境 win10 JMeter 5.4.1 需求描述 需求是这样的,需要压测某个接口(取消分配接口),请求这个接口之前,需要先登录系统(物流WMS系统),并在登录后,选择并进入需要操作的仓库,然后 ...

  5. 踩坑记录:windows11下使用 VS2022 和 PCL1.14.1 配置点云开发环境

    闲话不多说,具体在windows下下载PCL与解压pcl可以看https://www.yuque.com/huangzhongqing/pcl/这位大佬的文章,那我就具体说一下踩过点坑: 踩坑点1: ...

  6. 新做了一个MySQL 数据库 DDL 差异对比的网站

    MySQL 数据库 DDL 差异对比的网站 摘要 新做了个网站,用来对比不同环境下的 DDL 差异,生成变更点和 迁移 DDL 网站地址:https://ddlcompare.com/ 对比过程中如果 ...

  7. lambda表达式用法

    (参数列表)->{代码块}; (int a,int b)->{return a+b;}; 本质为匿名函数 参数的类型可以省略: (a,b)->{return a+b;} 当参数只有一 ...

  8. Python和RPA网页自动化-浏览器切换不同窗口页面

    以百度为例,点击[BOSS直聘]词条会打开一个BOSS新窗口页面,分别使用Python和RPA网页自动化在不同的窗口页面来回切换窗口完成以下顺序步骤 1.Python代码如下 步骤:打开新窗口页面后, ...

  9. 【Centos】RPM安装Mysql8

    先去官网下载RPM包,没想到RPM包是红帽发行版 https://dev.mysql.com/downloads/mysql/ 使用wget直接下载到Centos里面: wget https://cd ...

  10. python数据分析与可视化基础

    一.数据分析介绍:1.数据分析含义:数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用.数据分析是为了提取有用信息和形成 ...