我当前的项目使用grunt-sass将scss文件转换为css。 根据grunt-sass文档,我可以使用node-sass提供的任何选项,除了少数:
选项
请参阅node-sass选项,但file,outFile,success,error除外。
我的项目从一个SCSS文件中编译两个CSS文件。 SCSS文件中包含if语句,根据版本变量的值提供不同的代码($ bootstrap-version:3;或$ bootstrap-version:4;)。
我想使用node-sass选项functions
将引导版本返回到我的SCSS文件。
这是我的gruntfile。 functions: {...}
路径是我期望该选项工作的方式。
// Compile Sass
sass: {
bootstrap3: {
options: {
style: 'expanded'
functions: {getBootstrapVersion: function(){return 3;}}
},
files: {
'dist/bootstrap3/css/my-bs3-variation.css': './bootstrap3/scss/my-bs3-variation.scss'
},
},
bootstrap4: {
options: {
style: 'expanded',
functions: {getBootstrapVersion: function(){return 4;}}
},
files: {
'dist/bootstrap4/css/my-bs4-variation.css': './bootstrap4/scss/my-bs4-variation.scss'
}
}
在SCSS文件中,我调用这样的函数:
$bootstrap-version: getBootstrapVersion();
h1:before {
content: "Bootstrap " + $bootstrap-version + " Version of ";
}
但是,在尝试编译它时,我得到了我调用该函数的行的错误>> Error: error in C function getBootstrapVersion: A SassValue object was expected.
。
node-sass文档中的示例对我没什么帮助。我做错了什么?或者有没有更好的例子我没找到?
我使用grunt-sass版本2.0.0和node-sass版本4.7.2
答案 0 :(得分:2)
函数必须返回SassValue
对象。
不幸的是,我认为单独使用grunt-sass
是不可能的,因为我们需要将返回的数字4
和3
包装在{{1}中定义的键入函数中(node-sass
不公开...)。
例如, javascript 中的 node-sass ,可以使用grunt-sass
之类的内容将sass.types.Number(4)
声明为数字{{1 }}
此处,4
是node-sass导入SassValue
,在grunt中不可用...