如果你想使用传统的后端(如 Rails, Laravel)来服务 HTML,但使用 Vite 来服务其他资源,可以查看在 Awesome Vite 上的已有的后端集成列表。
如果你需要自定义集成,你可以按照本指南的步骤配置它:
1、在你的 Vite 配置中配置入口文件和启用创建 manifest
:
// vite.config.js
export default defineConfig({
build: {
// 在 outDir 中生成 manifest.json
manifest: true,
rollupOptions: {
// 覆盖默认的 .html 入口
input: "/path/to/main.js"
}
}
})
如果你没有禁用 module preload 的 polyfill,你还需在你的入口处添加此 polyfill:
// 在你应用的入口起始处添加此 polyfill
import "vite/modulepreload-polyfill"
2、在开发环境中,在服务器的 HTML 模板中注入以下内容(用正在运行的本地 URL 替换 http://localhost:3000
):
<!-- 如果是在开发环境中 -->
<script type="module" src="http://localhost:3000/@vite/client" rel="external nofollow" ></script>
<script type="module" src="http://localhost:3000/main.js" rel="external nofollow" ></script>
还要确保服务器配置为提供 Vite 工作目录中的静态资源,否则图片等资源将无法正确加载。
如果你正使用 @vitejs/plugin-react-refresh
配合 React,你还需要在上述脚本前添加下面这个,因为插件不能修改你正在服务的 HTML:
<script type="module">
import RefreshRuntime from "http://localhost:3000/@react-refresh"
RefreshRuntime.injectIntoGlobalHook(window)
window.$RefreshReg$ = () => {}
window.$RefreshSig$ = () => (type) => type
window.__vite_plugin_react_preamble_installed__ = true
</script>
3、在生产环境中:在运行 vite build
之后,一个 manifest.json
文件将与静态资源文件一同生成。一个示例清单文件会像下面这样:
{
"main.js": {
"file": "assets/main.4889e940.js",
"src": "main.js",
"isEntry": true,
"dynamicImports": ["views/foo.js"],
"css": ["assets/main.b82dbe22.css"],
"assets": ["assets/asset.0ab0f9cd.png"]
},
"views/foo.js": {
"file": "assets/foo.869aea0d.js",
"src": "views/foo.js",
"isDynamicEntry": true,
"imports": ["_shared.83069a53.js"]
},
"_shared.83069a53.js": {
"file": "assets/shared.83069a53.js"
}
}
Record<name, chunk>
结构的对象。_
。你可以使用这个文件来渲染链接或者用散列文件名预加载指令(注意:这里的语法只是为了解释,实际使用时请你的服务器模板语言代替):
<!-- 如果是在生产环境中 -->
<link rel="stylesheet" href="/assets/{{ manifest["main.js"].css }}" />
<script type="module" src="/assets/{{ manifest["main.js"].file }}"></script>
Maven教程 - 如何将您的项目安装到Maven本地存储库当构建软件时,我们经常需要创建一些库来收集所有的函数和类在共同的一起,把...
快捷键介绍Alt + Shift + N选择 / 添加 task (必备)Alt + Shift + F显示添加到收藏夹弹出层 / 添加到收藏夹Alt + Shift + C查...
在 IntelliJ IDEA 上调用 profile 简单,如下图勾选对应的复选框即可,可以多选。IntelliJ IDEA 配合 Maven 的一些技巧只使...
Eclipse 浏览(Navigate)菜单浏览 Eclipse 工作空间浏览(Navigate)菜单提供了多个菜单可以让你快速定位到指定资源。 上图中 Open ...
常用的逻辑操作符有:boolean AND boolean → booleanboolean OR boolean → boolean NOT boolean→ booleanSQL使用三值的逻辑系...
LISTEN — 监听一个通知 大纲LISTEN channel 描述 LISTEN在名为channel的通知频道上将当前会话注册为一个监听者。如果当前会话已...
psql — PostgreSQL的交互式终端大纲psql [option...] [dbname[username]]描述 psql是一个PostgreSQL的基于终端的前端。它让你能...