我认为措辞有点误导。 我们仅允许导入css局部变量(以.css结尾的东西将保留为代码中的实际导入)。 同样,Ruby Sass默认情况下不允许这样做,但是有一些工具(同样是AFAIK指南针)默认为Ruby Sass启用了此功能。 我也不确定我们是否真的要默认禁用它,因为这将是另一个潜在的重大更改。
class CSSImporter < Sass::Importers::Filesystem
def extensions
super.merge('css' => :scss)
end
end
Sass::Plugin.options[:filesystem_importer] = CSSImporter
全面披露我仍然认为应该删除此功能。 我们的指令是做Ruby Sass的工作。 任何偏离其实现的行为都会破坏可移植性,并且与错误无法区别。
同样,Ruby Sass默认情况下不允许这样做,但是有一些工具(同样是AFAIK指南针)默认为Ruby Sass启用了此功能
这不是我们的工作。 这属于惠灵顿和眼镜之类的工具领域。
我也不确定我们是否真的要默认禁用它
我坚信应该。
这将是另一个潜在的突破性变化
就Sass用户而言,当前行为已被破坏。
我想很明显,我赞成拥有此功能,只是想指出这一点,主要是因为我为libsass 3.3.0实现了针对大量导入的错误消息。 此外,默认情况下,我们仅在部分解析(还包括css扩展名)方面有所不同,并且我认为通常您不会在_partial_导入旁边生成或具有相同名称的css。 不确定何时会在C-API上实现该选项。 欢迎贡献者;)
我认为理想的情况是它们都支持此功能。 第二个最好的事情就是@xzyfer所说的,至少
从理论上讲,您应该能够从libsass切换到ruby sass,而不会发生任何中断。 拥有可以故意阻止imo发生的事情是一件坏事。
从理论上讲,您应该能够从libsass切换到ruby sass
确切地。
接下来最好的事情就是@xzyfer所说的,至少
这就是我们要做的。
Sass 4.0将带来一种正确执行此操作的方法。
极好的! 等不及了。
@mgreter我已经与@chriseppstein和@ nex3讨论了此问题。 我们已经确定,即使内联CSS导入在很大程度上破坏了Ruby Sass的兼容性,但删除此功能也可能会使用户感到不适。 这是Ruby Sass中长期以来要求的功能,由于CSS超集的局限性,所以无法实现。 结果,几乎某些人正在依赖这种行为。
相反,我们的目标是在4.0中删除它,因为用户更愿意接受主要版本中的重大更改,并且因为我们将拥有内联CSS导入的正式方法。
我们最近从较旧的版本切换到了最新版本的Node,并且不得不升级我们正在使用的第3方库,以与当前的Node版本兼容。 现在,由于这个错误,到处乱七八糟。 我知道libsass中尚未解决此问题,因此我试图递归找出要摆脱此问题需要依赖的依赖关系的哪个版本。
所以,有几个问题(很抱歉,如果我在这里错过了此信息,那么这个线程会有些混乱):
该错误引入了哪个版本的libsass?
我不能确定。 我认为大约在3.3.0左右,位于[email protected]中。
该修复程序将引入哪个版本-3.5? 4.0?
@use
登陆后,此问题将在4.0中修复。 它将允许人们明确选择加入CSS导入。
该版本计划何时发布?
不幸的说不可能。 今年不太可能。
顺便说一句,如果您使用的是node-sass,则可以编写一个自定义导入程序以对.css文件进行noop导入。
正如@xzyfer所说,尝试使用自定义导入器,我遇到一个问题,即我们在同一目录中有.scss文件和.css文件,这是我为node-sass制作的导入器
importer: function(url, prev, done) {
// Use this to import scss files, instead of css ones
let updatedUrl = url;
if (!url.endsWith('.scss') && !url.endsWith('.css')) { // Also don't change ones already explicitly set to .css
updatedUrl += '.scss';
}
grunt.verbose.writeln(`Changed ${url} into ${updatedUrl}`);
done({file: updatedUrl});
}
使用node-sass 4.5.2 libsass 3.5.0-beta2测试
最有用的评论
正如@xzyfer所说,尝试使用自定义导入器,我遇到一个问题,即我们在同一目录中有.scss文件和.css文件,这是我为node-sass制作的导入器
使用node-sass 4.5.2 libsass 3.5.0-beta2测试