尝试用gulp、panini、mustache、sass构建自定义工作流,我的一个问题是包括node_modules中的部分内容,下面是来自main.scss文件的示例:
@import "node_modules/bootstrap/scss/mixins"; @import "settings";
如何避免键入_mixins.scss的完整路径?
mwg9r5ms1#
你的问题与此类似:Sass导入未搜索node_modules以查找相应的程序包可以通过将includePaths参数传递给gulp sass来包含路径。
.pipe($.sass({ includePaths: ['node_modules/bootstrap/scss/', 'another/path'] })
j7dteeu82#
您可以在sass路径中包含node_modules:
node_modules
.pipe(sass({ includePaths: ['node_modules'] })
然后,您可以导入库的sass,如下所示:
@import "bootstrap/scss/bootstrap";
或者,在材料-组件-网的情况下:
@import "@material/top-app-bar/mdc-top-app-bar";
这一来:
xytpbqjk3#
对于其他人来说,如果你使用gulp-ruby-sass而不是node-sass,你应该使用
gulp-ruby-sass
node-sass
loadPath: ['node_modules/bootstrap/scss/']
代替
includePaths: ['node_modules/bootstrap/scss/']
snz8szmq4#
使用includePaths,或者您可以像这样解析NPM模块:
@import "~bootstrap/scss/mixins"; @import "settings";
有一些sass-globbing的库,但我个人不喜欢这种方法,因为在CSS中,导入顺序很重要。最好的做法是IMHO创建一些文件vendor.scss;
vendor.scss
@import "~bootstrap/scss/mixins"; @import "~bourbon/...";
然后导入vendor.scss:
@import "vendor.scss" @import "partials/..."
4条答案
按热度按时间mwg9r5ms1#
你的问题与此类似:Sass导入未搜索node_modules以查找相应的程序包
可以通过将includePaths参数传递给gulp sass来包含路径。
j7dteeu82#
您可以在sass路径中包含
node_modules
:然后,您可以导入库的sass,如下所示:
或者,在材料-组件-网的情况下:
这一来:
xytpbqjk3#
对于其他人来说,如果你使用
gulp-ruby-sass
而不是node-sass
,你应该使用代替
snz8szmq4#
使用includePaths,或者您可以像这样解析NPM模块:
有一些sass-globbing的库,但我个人不喜欢这种方法,因为在CSS中,导入顺序很重要。
最好的做法是IMHO创建一些文件
vendor.scss
;然后导入
vendor.scss
: