将一个特定的 Sass 文件编译到与其他文件不同的文件夹中

Posted

技术标签:

【中文标题】将一个特定的 Sass 文件编译到与其他文件不同的文件夹中【英文标题】:Compile one specific Sass-file to a different folder than the rest 【发布时间】:2015-05-09 00:33:42 【问题描述】:

我正在使用 htmlphp 和 SASS 创建一个 Wordpress 主题。 SASS 文件编译到名为 'css' 的文件夹中,但由于我正在创建 Wordpress 主题 WP 要求 style.css 文件位于同一文件夹中作为其他主题文件。

这是我的文件夹结构:

现在我想要更改编译设置,以便 style.css 文件位于 teamtour-folder 而不是 css-folder 而无需手动每次我保存时都将其从 css-folder 中移出,而其他 scss 文件则保留在 css-folder 中。最简单的方法就是将每个 sass 文件编译到 teamtour-folder,我知道,这个问题可能只是微不足道的,但我仍然希望有一个有组织的文件夹结构。

我使用 NetBeans 作为 IDE

【问题讨论】:

【参考方案1】:

这在 NetBeans 中默认的 Less/Scss 支持下是不可行的,映射是基于文件夹的(尽管我相信报告了一些基于文件的映射的错误/增强 - 我会调查它)。

作为最简单和最快的解决方案,我会做的是:

更改 Less 编译器的映射以在 teamtour 中生成 css 文件

有 Grunt/Gulp “构建(分发)任务”,可以将所需的 CSS 文件移动到 CSS 文件夹

这样你在开发过程中可能会有点“混乱”,但在发布你的主题之前,你会执行构建任务并让 Grunt/Gulp 清理你的结构。您甚至可以将 Grunt 或 Gulp 任务映射到 NetBeans 中的“构建”操作,因此最后您只需右键单击您的项目并选择构建。

注意:Gulp 仅在 NetBeans 的开发版本中可用

【讨论】:

谢谢,我担心在 Netbeans 中无法实现。我最终将其他文件更改为部分文件,然后将它们导入 style.scss 文件并将文件编译到 teamtour-folder .不过会检查 Gulp 或 Grunt :)【参考方案2】:

另一种方法是让 SASS 将其所有输出编译到 css 目录中,并减少主主题 CSS 文件到单个 @import 语句。缺点当然是额外的 HTTP 请求。

另一个减少 HTTP 请求数量的建议是将 SASS 编译到主题根目录中,并将 @import 所有其他 CSS 文件编译到主题的主 SCSS 文件。那么你的主题只需要加载一个 CSS 文件。

【讨论】:

【参考方案3】:

Wordpress 要求 a style.css 在主题“根”文件夹中 - 它不要求在使用主题时实际加载此文件。该文件只需要在评论中包含主题名称和一些其他细节 - 我想这个设置是出于遗留原因。

我已经好几年没用style.css 做实际样式了,这是我的“样板”style.css,完成后看起来并没有太大的不同。

/*
Theme Name: BLANK THEME
Author: Mikk3lRo
Author URI: 
Description: Blank theme
Version: 0.1
License: 
Text Domain: prfx
*/

实际的样式表包含在子文件夹中:

wp_enqueue_style('prfx_styles', get_template_directory_uri() . '/css/production.css');

【讨论】:

以上是关于将一个特定的 Sass 文件编译到与其他文件不同的文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

Gulp-sass 无法编译 scss 文件

在浏览器中编译 sass 文件

Python 没有将文件保存到与 Ubuntu 11.10 上 Python 文件所在位置不同的文件夹中

SASS 没有在 symfony 中编译

sass-基础

Gulp SASS - 使用 @import 而不编译 scss -> css