sass - Sapper - 导入的 scss 样式消失
问题描述
我有一个奇怪的问题,可能与脚趾摇晃有关。我构建了一个工兵应用程序,在我的汇总配置中,我使用了svelte-preprocess 包并像这样配置它:
const preprocessOptions = {
scss: {
data: `@import '${join(process.cwd(), "src/styles/main.scss")}';`,
includePaths: ["node_modules", "src"],
},
postcss: {
plugins: [
require("autoprefixer"),
require("cssnano")({
preset: "default",
}),
],
minimize: !isDevelopment,
sourceMap: isDevelopment,
},
};
通过scss
插件,我复制了全局样式表main.scss。它的所有样式似乎都被应用了,除了body
. 不知何故,这些被忽略了,因为当我在开发控制台中检查正文样式时,它是空的。你不能在 Sapper 中访问身体,还是有一种特殊的方法可以做到这一点?
解决方案
问题在于 Sapper 的主体是 template.html 文件的一部分。这意味着没有带有 body 元素的组件。Svelte 将删除组件中未使用的样式,除非它们被明确标记为global
. 全局预处理器可以帮助解决这个问题。我认为在您的情况下,我只会让捆绑程序为 template.html 创建一个单独的 css 文件,并像 global.css 一样明确包含它:
...
%sapper.base%
<link rel='stylesheet' href='global.css'>
...
推荐阅读
- python - 只有 1 KB 的文件正在下载,而不是 Python 中的全部内容
- javascript - 如何删除表体
- vuejs2 - vue js如何在不刷新页面的情况下加载JS文件
- visualforce - 如何在自定义 visualforce 页面上自动显示查找图标以选择机会?
- dart - 在堆栈中拟合文本
- python - 无法在 python 列表中执行编码和解码
- recursion - 这个递归函数的深度是多少?
- google-chrome - 在弹出窗口中未启用 chrome 扩展
- algorithm - 为什么对 LRU 缓存使用双向链表和 HashMap 而不是 Deque?
- java - 从凌空 JSON 对象 POST 方法响应中捕获 cookie