我通过gulp sass任务将.scss文件转换为.css。问题是基.scss文件包含包含其他导入的导入。这些导入以
开头~@angular/material/core/etc/etc
代字号会导致以下错误:
events.js:160
throw er; // Unhandled 'error' event
^
Error: node_modules\@covalent\core\chips\_chips-theme.scss
Error: File to import not found or unreadable: ~@angular/material/core/theming/theming.
Parent style sheet: C:/Users/laurensk/Documents/Playground/node_modules/@covalent/core/chips/_chips-theme.scss
on line 1 of node_modules/@covalent/core/chips/_chips-theme.scss
>> @import '~@angular/material/core/theming/theming';
^
有一个名为node-sass-tilde-importer的自定义导入程序,但我不确定是否可以将其实现到我的gulp sass任务中。
我的代码:
var gulp = require("gulp"),
sass = require("gulp-sass");
//var replace = require('gulp-replace');
//var sassGlob = require('gulp-sass-glob');
//var tildeImporter = require('node-sass-tilde-importer');
gulp.task("sass", function () {
return gulp
.src('Styles/theme.scss')
.pipe(sass())
.pipe(gulp.dest('wwwroot/dist'));
});
我已尝试更换替换'〜'使用' ./ node_modules'但它会引发同样的错误。
任何意见都会受到赞赏!
答案 0 :(得分:17)
gulp-sass
接受所有node-sass
个属性。
因此,您只需要使用gulp-sass
导入程序配置node-sass-tilde-importer
:
var gulp = require("gulp"),
sass = require("gulp-sass");
var tildeImporter = require('node-sass-tilde-importer');
gulp.task("sass", function () {
return gulp
.src('Styles/theme.scss')
.pipe(sass({
importer: tildeImporter
}))
.pipe(gulp.dest('wwwroot/dist'));
});