分离 SCSS 和 CSS 文件

Posted

技术标签:

【中文标题】分离 SCSS 和 CSS 文件【英文标题】:Separating SCSS and CSS files 【发布时间】:2021-09-25 12:22:49 【问题描述】:

这是我的网站文件夹结构:

/images
/fonts
/js
/styles /    
        scss/
            |
            |– utilities/
            |   |– variables.scss  
            |
            |– base/
            |   |– reset.scss       
            |   |– typo.scss        
            |
            |– pages/
            |   |– index.scss       
            |   |– page1.scss            
            |
            – main.scss            

        css/ 
            // Save CSS Here

index.html

说明:

我有一个root 文件夹,包含index.html 和几个文件夹,例如fontsjsstyles... 在styles 文件夹中,有两个文件夹scsscss。在scss 文件夹中,有main.scss(其中包含所有scss -imported-),以及一些带有scss 文件的文件夹,例如:baseutilitiespages...

问题:

当我创建scss 文件时,compiler 在已创建的scss 文件的same 文件夹中创建csscss.map。 例如,在创建 variables.scss 之后,它会如下所示:

|– utilities/
            |   |– variables.css   
            |   |– variables.css.map   
            |   |– variables.scss   

问题:

如何将不同文件夹中的两种类型的文件分开,使其看起来与下面的示例完全相同?

我想要实现的目标:

/images
/fonts
/js
/styles /    
        scss/
            |
            |– utilities/
            |   |– variables.scss  
            |
            |– base/
            |   |– reset.scss       
            |   |– typo.scss        
            |
            |– pages/
            |   |– index.scss       
            |   |– page1.scss            
            |
            – main.scss            

        css/ 
            |
            |– utilities/
            |   |– variables.css
            |
            |– base/
            |   |– reset.css
            |   |– typo.scss
            |
            |– pages/
            |   |– index.css
            |   |– page1.css
            |
            – main.css

index.html

【问题讨论】:

这真的取决于你的 Sass 编译器。查看这个 GitHub 线程 here 获取 VSCode LiveSassCompiler 另外,对于仅包含的 .scss 文档,请考虑在文件名前添加下划线,以防止它被自己编译,而不是作为主要 .css 文档的一部分。 (_variables.scss 而不是variables.scss)。查看this thread 了解更多信息。 【参考方案1】:

您需要将不想生成 CSS 的文件重命名为在名称前添加下划线 "_"。不用担心您不需要更改导入中的名称,SASS 会为您完成。

所以你的变量文件是_variables.scss

【讨论】:

我知道,添加“_”下划线不会生成新文件,但我需要将 CSS 文件保存在新文件夹中,如上例所示。 (Sass 相同,但在 CSS 文件夹中) 对不起,我误解了这个问题。在这种情况下取​​决于编译器,节点 Gulp 和 Ruby 是默认行为,您使用的是哪个编译器?【参考方案2】:

我建议使用 live sass 编译器来转译 scss 文件 尝试这个: 去

menu- file>preferences>settings>extension>live sass copile config>在 settings.json 中编辑

并粘贴: (可以自定义保存路径)

"liveSassCompile.settings.formats": [

  "format": "expanded",
  "extensionName": ".css",
  "savePath": "./css/"

]

【讨论】:

以上是关于分离 SCSS 和 CSS 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将scss转换成css文件

如何在子组件 scss 文件中覆盖 main.component.scss 中的 css

使用 Parcel、SASS 和 TypeScript 将 SCSS 文件作为 CSS 字符串导入

将scss文件转换成css文件

如何使用 Gulp 从 SASS/SCSS 中缩小和 Autoprefixer CSS 文件

.scss 文件不会自动编译 .css