oblik/kirby-vite

Kirby 插件,用于处理 Vite 的开发和生产模式。

安装: 62

依赖者: 0

建议者: 0

安全: 0

星标: 12

关注者: 4

分支: 2

开放问题: 0

类型:kirby-plugin

1.1.0 2022-11-20 12:15 UTC

This package is auto-updated.

Last update: 2024-09-05 06:07:35 UTC


README

为 Kirby 提供加载由 Vite 生成的资源的插件。

  • 在开发模式下,资源通过 Vite 的开发服务器加载,让您能够利用其所有功能,例如 HMR。
  • 在生产模式下,由 PHP 提供 URL 并服务构建的资源。

另一个类似的插件是 arnoson/kirby-vite,但它更复杂,依赖于手动生成 .lock 文件(可以通过仅依赖清单的存在而省略)。因此,它启发了这个插件的创建。

注意:Vite 3.1.2 开发和测试。

工作原理

该插件依赖于 Vite 的 清单功能,它生成一个包含非哈希文件名到其哈希版本映射的 manifest.json 文件。该插件使用此文件来渲染正确的资源链接。如果此文件不存在,则假定 Vite 正在开发模式下运行,插件尝试从 Vite 的开发服务器请求文件。

如何使用

安装

Composer

您可以在 Packagist 上找到 oblik/kirby-vite

composer require oblik/kirby-vite

下载

下载并将此存储库复制到 /site/plugins/vite

Git 子模块

git submodule add https://github.com/oblik/kirby-vite.git site/plugins/vite

启用清单

确保您已在您的 vite.config.js 中启用了 build.manifest 选项

// vite.config.js
export default defineConfig({
	build: {
		manifest: true,
	},
});

ℹ️ 您可能想深入了解 Vite 的后端集成指南,以了解 Vite 如何处理传统后端中的资源。

输出 JavaScript

您需要将入口脚本传递给 js() 方法

<?= vite()->js('src/index.js') ?>

输出 CSS

您需要像 JavaScript 一样做,但使用 css() 方法

<?= vite()->css('src/index.js') ?>

注意: 当使用 Vite 时,CSS 文件在主 JavaScript 文件中导入。为了从生成的清单中找到 CSS,插件需要导入您的 CSS 的文件,而不是 CSS 文件本身。

注意 2: 在开发模式下,css() 方法不执行任何操作,因为 Vite 在您的 JavaScript 加载时自动加载您的 CSS 以及所需的 @vite/client 脚本。换句话说,vite()->js() 加载一切。

删除生成的资源

工作原理部分 中所述,为了确保正常功能,每次您启动开发服务器时,都应该删除构建文件夹。这可以通过在您的 npm 开发脚本中使用 rm -rf 轻松完成。

{
	"scripts": {
		"dev": "rm -rf dist && vite"
	}
}

选项

在您的 config.php 中,确保您已将插件配置为与您的 vite.config.js 相匹配

return [
	'oblik.vite' => [
		'server' => [
			'port' => 5173,
			'https' => false,
		],
		'build' => [
			'outDir' => 'dist'
		]
	]
];

注意: 上面的值是默认值,所以如果它们与您的设置匹配,您不需要进行任何配置。 🤙

许可协议

MIT 许可协议 © 2021-2022 Oblik Studio