导入以tilde开头的node_modules的Gulp sass问题

Lau*_*ens 8 sass gulp

我正在通过gulp sass任务将.scss文件转换为.css.问题是基.scss文件包含包含其他导入的导入.这些进口始于

~@angular/material/core/etc/etc
Run Code Online (Sandbox Code Playgroud)

代字号会导致以下错误:

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';
   ^
Run Code Online (Sandbox Code Playgroud)

有一个名为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'));
});
Run Code Online (Sandbox Code Playgroud)

我已尝试使用'./node_modules'替换'〜',但它会抛出相同的错误.

任何输入将不胜感激!

小智 21

gulp-sass接受所有node-sass财产.所以,你只需要配置gulp-sassnode-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'));
 });
Run Code Online (Sandbox Code Playgroud)