是什么尤大选择放弃Webpack?Vite 原理解析

作者:「橙红年代」

原文: https://juejin.im/post/5ea2361de51d454714428b44

预备知识

vite重度依赖module sciprt的特性,因此需要提前做下功课,参考:JavaScript modules 模块 - MDN。

module sciprt允许在浏览器中直接运行原生支持模块

<script type="module">
    // index.js可以通过export导出模块,也可以在其中继续使用import加载其他依赖 
    import App from  ./index.js 
</script>

当遇见import依赖时,会直接发起http请求对应的模块文件。

开发环境

本文使用的版本为vite@0.3.2,附github项目地址~目前这个项目貌似每天都在更新

首先克隆仓库

git clone https://github.com/vuejs/vite
cd vite && yarn

环境安装完毕后在项目下创建examples目录,新增index.html和Comp.vue文件,这里直接用README.md中的例子

首先是inidex.html

<div id="app"></div>
<script type="module">
import { createApp } from  vue 
import Comp from  ./Comp.vue


createApp(Comp).mount( #app )
</script>

然后是`Comp.vue``



<template>
  <button @click="count++">{
  { count }} times</button>
</template>


<script>
export default {
  data: () => ({ count: 0 })
}
</script>


<style scoped>
button { color: red }
</style>

然后在exmples目录下运行

../bin/vite.js

即可在浏览器http://localhost:3000打开预览,同时支持文件热更新哦~

如果需要调试源码,启动npm run dev即可,会开启tsc -w --p监听src目录的改动并实时输出到dist目录下,接下来就可以开启欢乐的源码时间~

入口文件

目前这个项目迭代非常频繁(昨天还有historyFallbackMiddleware这个中间件呢今天貌似就没了),但是大概的实现思路应该是基本确定了,因此先确定本次源码阅读目标:了解如何在不使用webpack等打包工具的前提下直接运行vue文件。基于这个目的,主要是了解实现思路,理清整体结构,不用拘泥于具体细节。

从入口bin/vite.js开始

const server = require( ../dist/server ).createServer(argv)

可以看见createServer方法,直接定位到s

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值