javascript - vite:将 css/sass 导入组件中不应同时包含 style.css 中的样式
问题描述
我正在使用这样的东西将 sass 文件中的样式导入到 lit 组件中:
import { html, unsafeCSS, LitElement } from "lit";
import local_css from "/src/static/component_styles.sass";
export class MyApp extends LitElement{
static styles = unsafeCSS(local_css);
}
在构建应用程序时,样式已正确注入到 js 代码中,但 component_styles.sass 额外捆绑到了 styles.css 中。
更糟糕的是,来自 component_styles.sass 的样式被开发服务器加载为全局样式。所以本地组件的样式会影响开发中组件周围的 DOM。这违背了组件开发的目的。
有没有办法避免这种情况?在 vite 的 github 上有一个关于这个的讨论(但到目前为止还没有解决方案)
解决方案
感谢https://github.com/vitejs/vite/issues/3246中的 franktopel 和 tarnishablec,我得到了一个答案:在导入中添加“?inline”显然可以保持组件本地的样式。适用于开发和生产。
import local_css from "/src/static/component_styles.sass?inline";
推荐阅读
- python - Pandas groupby 将嵌套的 ndarray 数组分配回数据帧
- android - 我如何监控/知道测试设备上当前正在运行的活动/视图?
- asp.net-core - 使用 Blazor Asp.net Core 3.1.0 Preview 3 添加 Jwt HttpClient 处理程序
- bash - 如何在shell脚本中使用for循环以升序和降序打印数字
- php - 从同一类访问已设置的属性返回 null
- css - 如何上下滚动 SideBar 而不是整个窗口?
- rust - 如何按顺序遍历 HashMap 的键
- ios - iOS PDFKit 内存泄漏
- r - 划分变量的频率以创建新的数据框
- python - 从控制台python同时获取多个输入