【发布时间】:2014-12-26 06:49:22
【问题描述】:
我有一个 bootstrap.css 文件,我想用我的自定义样式从 style.sass 编译成单个输出文件,例如 - style.css。 对于 sass 编译,我使用带有 grunt-contrib-sass 扩展的 gruntjs。我的 sass 的 Gruntfile.js 配置如下所示:
sass: {
dist: {
options: {
//style: 'compressed',
style: 'expanded',
lineNumbers: true
},
files: {
'build/styles/style.css': 'src/styles/style.sass'
}
}
}
我尝试将 bootstrap.css 导入 sass 文件,但它只在输出 css 中生成下一个代码(这是正确的行为 http://sass-lang.com/documentation/file.SASS_REFERENCE.html#import):
@import url(bootstrap.css);
.....
/*my style.sass rules*/
我什至尝试按照连接和处理的顺序列出多个文件,就像在 uglifier 设置中一样:
files: {
'build/styles/style.css': ['src/styles/bootstrap.css', 'src/styles/style.sass']
}
但这只会将 bootstrap.css 添加到最终 style.css 文件中,而忽略 style.sass 的存在。
由于我是 gruntjs 的新手,所以我不知道应该如何正确完成。
【问题讨论】:
-
您是否尝试过删除 url() 以便获得
@import "bootstrap.css;"?我只导入这样的“.scss”文件:@import "bootstrap"; -
@import url(...);是来自输出文件的 css。问题是,SASS 通过规则扩展了 css 默认导入功能,您可以在上面的参考资料中找到。
-
我明白了,如果您使用了
scss格式,您可以将引导程序的格式更改为bootstrap.scss并使用@import "bootstrap";导入,因为 vanilla CSS 是有效的 SCSS。基本上你有三个选择; 1. 使用 sass 语法重写 bootstrap,2. 将 sass-file 更改为 scss 语法,或者 3. 单独渲染 sass 并通过另一个 grunt 扩展与 bootstrap 合并。 -
我明白了,谢谢。我会找到一些类似“concat”或类似的扩展名。
标签: css sass gruntjs grunt-contrib-sass