k10r / vite-encore
Webpack encore 类型的入口加载器,适用于 ViteJS
Requires
- php: ^7.4|^8.0
- ext-json: *
- symfony/config: ^4.4 || ^5.0 || ^6.0
- symfony/dependency-injection: ^4.4 || ^5.0 || ^6.0
- symfony/framework-bundle: ^4.4 || ^5.0 || ^6.0
- symfony/http-kernel: ^4.4 || ^5.0 || ^6.0
- symfony/twig-bundle: ^4.4 || ^5.0 || ^6.0
Requires (Dev)
- k10r/codestyle: ^2.0
- phpstan/phpstan: ^0.12.99
- roave/security-advisories: dev-latest
README
此 Symfony 扩展包通过提供基于 Vite 的 manifest.json
或其开发服务器的 Twig 函数来帮助集成 Vite。
需求
为了使用此扩展包,您的项目必须满足以下要求
- Symfony
^4.4 || ^5.0 || ^6.0
安装
运行以下命令安装扩展包
composer require k10r/vite-encore
现在,在您的 config/bundles.php
中注册扩展包
return [ // ... K10r\ViteEncoreBundle\K10rViteEncoreBundle::class => ['all' => true], ];
如果您还没有安装 Vite,请运行以下命令进行安装
npm install -D vite
配置
配置扩展包包括两个部分:Vite 和 Symfony。后者是可选的,因为此扩展包已经提供了合理的默认值。
Vite
首先在项目根目录下创建一个 vite.config.js
文件,并用以下内容填充它
import { defineConfig } from 'vite'; import { resolve } from 'path'; export default defineConfig({ root: 'assets', base: '/dist/', build: { outDir: resolve(__dirname, 'public/dist'), emptyOutDir: true, manifest: true, target: 'es2018', rollupOptions: { input: '/js/app.js' }, }, server: { cors: true, strictPort: true, port: 3000, }, });
从那里开始,您可以根据需要调整配置。有关如何配置 Vite 的更多信息,请参阅官方文档。
为了使上述配置与您的项目兼容,您需要在 <project-root>/assets/js
目录中创建一个 app.js
或在配置中调整 root
和 build.rollupOptions.input
选项。
Symfony
为了更改默认配置,您可以在 <project-root>/config/packages
目录中创建一个 k10r_vite_encore.yaml
。
默认配置如下
# config/packages/k10r_vite_encore.yaml k10r_vite_encore: base: /dist/ server: enabled: true host: localhost port: 3000 https: false
选项
base
- 字符串
此选项告诉 Symfony 在相对于 public
目录的位置查找捆绑的资产。值必须等于 Vite 配置中的 root
选项,以及与 build.outDir
选项的最终路径片段相匹配。
server.enabled
- 布尔值
此选项控制,当项目以 APP_ENV=dev
启动时是否使用 Vite 开发服务器。这需要启动开发服务器。
server.host
- 字符串
此选项控制用于从开发服务器查询资产的域名。它应该对应于开发服务器将运行在其上的 IP/域名。
server.port
- 整数
此选项控制用于访问开发服务器的端口号。它应该对应于 Vite 配置中的 server.port
选项。
server.https
- 布尔值
此选项控制是否通过 https 访问开发服务器。
用法
为了包含您的捆绑资产,分别使用以下 Twig 函数来包含脚本和样式
{{ vite_style_entry('js/app.js') }} {{ vite_script_entry('js/app.js') }}
js/app.js
是与上面提供的 Vite 配置对应的入口点。它必须与 build.rollupOptions.input
的值相匹配,不能有尾随斜杠。
使用开发服务器
您可以通过运行 npx vite
或在您的 package.json
中创建别名脚本来运行 vite
来启动开发服务器。
为生产构建
如果您想为生产构建,请使用命令 npx vite build
或在您的 package.json
中创建别名脚本来执行 vite build
。
变更日志
本项目遵循 语义化版本控制。请参考 CHANGELOG.md 获取详细的变更内容和迁移说明。
许可证
MIT