Gulp-sass 5.0 如何使用带有 import() 而不是 require() 的编译器?

Gulp-sass 5.0 how to use compiler with import() instead of require()?

Gulp-sass 最近更新到 5.0 版。他们描述它不再包含编译器,他们说你必须单独安装。

他们有关于如何让 gulp-sass 要求编​​译器使用这段代码的文档。

var sass = require('gulp-sass')(require('sass'));

但我使用 import() 而不是 require(),我无法找到如何将他们提供的代码 require() 转换为 import()

这也是我得到的错误:

Error in plugin "gulp-sass"
Message:

gulp-sass 5 does not have a default Sass compiler; please set one yourself. 
Both the `sass` and `node-sass` packages are permitted.
For example, in your gulpfile:

  var sass = require('gulp-sass')(require('sass'));

现在我回滚到包含编译器的 4.1.1 版,但我想在某个时候将它更新到 5.0 版。

您不能在代码主体中使用 import 语句。它必须在文件的开头使用(参见https://flexiple.com/javascript-require-vs-import/#:~:text=One%20of%20the%20major%20differences,js%20extension%20as%20opposed%20to%20.

如果您或任何人正在寻找如何实施 gulp 代码。我在 Reddit https://www.reddit.com/r/webdev/comments/o9okup/error_with_gulpsass_setup/ 上找到了一个方向——“LessRain”提供了答案:

To install node-sass navigate to your project directory in terminal and run this command: npm install gulp gulp-sass node-sass gulp-concat --save-dev

Then you can swap sass = require('gulp-sass'); for const sass = require("gulp-sass")(require("node-sass"));

在我的例子中,代码进入了 gulpfile.js 文件,但因为它是语句的一部分,所以我不需要“const”

let gulp = require('gulp'),sass = require("gulp-sass")(require("node-sass")),...
import gulpSass from "gulp-sass";
import nodeSass from "node-sass";
    
const sass = gulpSass(nodeSass);

试试这个。 但是我还是不知道这个是不是最好的

  • 我知道应该弃用“node-sass”。只是一个例子。 使用“dart-sass”或“sass”

来自sass github repository

import dartSass from 'sass';
import gulpSass from 'gulp-sass';
const sass = gulpSass( dartSass );

(来自错误描述)

var sass = require('gulp-sass')(require('sass'));

对我有用的是使用 npm install sass 而不是使用 -g。