使用node-sass,可以导出sass项目,以便用户可以使用它,而不用硬编码库的路径。
尽管此功能非常方便,但也并不常见,因此,如果我npm安装要包含在主文件中的sass软件包,则始终必须首先硬编码主供应商软件包文件的路径。
假设我要使用以前与npm一起安装的名为breakpoint
的sass软件包。该软件包不会导出主文件,因此我不能要求它。我必须先在我的scss文件中对路径进行硬编码:
@import "../../../node_modules/name-of-vendor/breakpoint/sass/core/main"
使用includePath
,我可以在我的node-sass配置文件或任务运行程序配置文件中要求该软件包,而不仅仅是在我的scss文件中包含其名称的软件包:
发牢骚:
module.exports = function( grunt ) {
require( "load-grunt-tasks" )( grunt );
// sass includes
var bourbon = require( "bourbon" ).includePaths,
normalize = require( "node-normalize-scss" ).includePaths,
breakpoint = require( "breakpoint-sass" ).includePaths;
grunt.initConfig( {
sass: {
dist: {
files: {
"test/css/master.css": "test/css/master.scss"
},
options: {
sourceMap: true,
outputStyle: "expanded",
sourceComments: true,
includePaths: [
bourbon,
normalize,
breakpoint
]
}
}
}
grunt.registerTask( "default", [ "sass" ] );
}
在我的主要scss文件中,我只是按其名称导入
@import "breakpoint";
现在,我只是复制并粘贴其他代码,例如Bourbon或node-normalize-scss使用的代码,但我不知道我在做什么以及如何正确执行。 似乎也没有文档可以教我该怎么做。
那么导出node-sass项目并使用includePath的正确方法是什么?