【问题标题】:Sapper - imported scss styles disappearSapper - 导入的 scss 样式消失
【发布时间】:2020-10-06 05:59:05
【问题描述】:

我有一个奇怪的问题,可能与脚趾摇晃有关。我构建了一个 sapper 应用程序,在我的 rollup 配置中,我使用 svelte-preprocess package 并像这样配置它:

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 中访问正文,还是有特殊的方法可以做到这一点?

【问题讨论】:

    标签: sass svelte rollup sapper


    【解决方案1】:

    问题在于 Sapper 的主体是 template.html 文件的一部分。这意味着没有带有 body 元素的组件。 Svelte 将删除组件中未使用的样式,除非它们明确标记为 globalglobal preprocessor 可以帮助解决这个问题。我认为在您的情况下,我只会让捆绑程序为 template.html 创建一个单独的 css 文件,并像 global.css 一样明确包含它:

    ...
    %sapper.base%
    
    <link rel='stylesheet' href='global.css'>
    ...
    

    【讨论】:

    • 感谢您的解释。由于样式很少,我直接将它们移动到模板中的样式标签中。我认为在这种情况下使用额外的样式表或全局预处理器可能是矫枉过正。
    猜你喜欢
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 2021-10-24
    • 2016-11-01
    • 2014-05-15
    • 2021-05-16
    • 1970-01-01
    相关资源
    最近更新 更多