brocksinet / vite-sass-pages
使用Vite将SCSS编译为CSS,以优化Shopware 6的特定页面
dev-main
2023-12-06 08:59 UTC
Requires
- pentatrion/vite-bundle: ^6.0
- shopware/core: 6.5.*
Requires (Dev)
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-09-07 12:21:31 UTC
README
使用Vite和Sass(SCSS)为特定页面配置Shopware 6(以实现CSS拆分的能力)
原因
此主题(插件)是一个概念验证,用于实验和改进Shopware 6的CSS。
内容
- 为带有默认Storefront(twig)的Shopware 6提供Vite支持
- 添加SCSS监视和构建命令
- 使用Lightning CSS将dist目录中的CSS文件转换和压缩
- 将构建输出到
public/build
文件夹 - 提供单独的
product.css
文件,而不是all.css
文件- 建设中:结账、主页、列表、联系...等等
- 允许将自定义SCSS文件与核心SCSS文件结合使用(见load-path)
- 使用Rollup插件生成关键CSS(见
vite.config.js
中的PluginCritical
) - 扩展
storefront/layout/meta.html.twig
以使用Symfony & Vite(见这里)
限制
- 此主题(插件)期望Shopware核心位于项目
src
文件夹内(未与供应商中的核心进行测试) - 此主题(插件)不支持具有不同主题配置/颜色变量等的不同销售渠道
- 目前,尚未集成资产文件,如图片、字体等
结果
- 从2023-11-14
public/build/assets/product-84b1e655.css
283.46 kB │ gzip: 43.89 kBpublic/build/assets/all-0d8fa2e9.css
381.57 kB │ gzip: 51.69 kB
如何设置
- 将所有插件文件复制到
custom/plugins/ViteSassPages
- 通过composer需要插件
composer require brocksinet/vite-sass-pages
- 执行插件刷新
bin/console plugin:refresh
- 安装并激活插件
bin/console plugin:install ViteSassPages --activate
- 更新
config/bundles.php
文件并添加Pentatrion\ViteBundle\PentatrionViteBundle::class => ['all' => true],
- 添加文件
config/packages/pentatrion_vite.yaml
,内容如下pentatrion_vite: crossorigin: anonymous
- 从根目录安装NPM:
cd custom/plugins/ViteSassPages/ && npm i && cd ../../../
- 提示:如果您的URL不是
https://:8000/
,请在vite.config.js
中更新用于关键CSS生成的URL
如何使用
- 使用
devenv
启动Shopware - 在
devenv shell
中进行开发(目录:cd custom/plugins/ViteSassPages/
)- SCSS监视命令
npm run scss:watch
- Vite开发命令
npm run dev
- SCSS监视命令
进一步优化
- 您可以使用
purgecss
来删除未使用的类(目录:cd custom/plugins/ViteSassPages/
)- 例如:
npx purgecss --css ../../../public/build/assets/all-48786481.css --content ../../../src/Storefront/Resources/views/**/*.html.twig
(您需要更新要清除的CSS文件的文件名)
- 例如:
已知问题
- 窗口控制台告诉你:
module is not defined
取消注释
在if (module.hot) { module.hot.accept(); }
src/Storefront/Resources/app/storefront/src/main.js
- 未导入字体
inter-fontface
scss - 将
.vite
添加到项目根目录的.gitignore
文件中