如何使用gulp从node_模块导入bootstrap 4 sass/SCS
我正试图从node_模块@import一些bootstrap 4 sass文件,但我的gulp watcher没有接收到对这些node_模块引导文件的任何更改 在我的主sass文件中,我通过以下方式导入引导:如何使用gulp从node_模块导入bootstrap 4 sass/SCS,gulp,node-modules,gulp-watch,Gulp,Node Modules,Gulp Watch,我正试图从node_模块@import一些bootstrap 4 sass文件,但我的gulp watcher没有接收到对这些node_模块引导文件的任何更改 在我的主sass文件中,我通过以下方式导入引导: @import "bootstrap-grid"; @import "bootstrap-reboot"; @import "custom"; 然后,我还导入了一些“本地”sass文件(在node_模块之外): 这些本地sass文件被很好地监视,当我进行编辑/文件保存时,我会得到重新编译
@import "bootstrap-grid";
@import "bootstrap-reboot";
@import "custom";
然后,我还导入了一些“本地”sass文件(在node_模块之外):
这些本地sass文件被很好地监视,当我进行编辑/文件保存时,我会得到重新编译
我的sass-gulp任务如下所示:
//compile sass
gulp.task('sass', function() {
return gulp.src('src/css/scss/**/*.scss')
.pipe(sass({
includePaths: ['node_modules/bootstrap/scss/']
}))
.pipe(gulp.dest('src/css/'));
});
对于我来说,获取引导文件的关键部分是使用includePaths部分
我正在获取引导网格,我想做的是更新节点\u modules/bootstrap/scss/\u custom.scss(我正在导入该节点),以将引导覆盖放置在其中
当我编辑/保存任何节点\模块引导文件时,我不太确定如何使引导重新编译
我尝试将IncludePath更新为:
includePaths: ['node_modules/bootstrap/scss/**/*.scss']
但这会引发一个错误,“导入未找到的文件”(引导网格),这对我来说也很奇怪,因为它似乎应该在bootstrap/scss中添加/查看sass文件(以及任何子目录)
此时,我的文件结构非常简单:
root
|
| node_modules
| bootstrap
| scss
| src
| css
| scss
gulpfile.js
尝试将节点_模块中的sass文件添加到gulp.watch:
gulp.watch([
'node_modules/bootstrap/scss/**/*.scss',
'src/css/scss/**/*.scss'
], ['sass']);
希望能有所帮助。自定义节点单元中的文件是一种不好的做法。你可以在导入引导文件后加载一个定制的css文件来覆盖那些值OK,是的,这很公平,我同意。我只是想弄清楚如何从位于不同目录中的sass文件中重新编译。如果导入已经存在于您的scss文件中,您不必这样做,sass编译器会处理这个问题。这就是我的问题所在,当我在node_模块中更改bootstrap的_custom.scs时,它不会重新编译。我的“本地”src/css/scss文件是。回顾过去,我的示例并不是最好的,因为正如您所指出的,您不想在node_模块中编辑文件,但我只是想弄清楚为什么我不能在src/css/scss之外的save文件上编译
gulp.watch([
'node_modules/bootstrap/scss/**/*.scss',
'src/css/scss/**/*.scss'
], ['sass']);