Gulp-sass 5.0 如何使用带有 import() 而不是 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 版。

解决方法

来自sass github repository

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

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

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

您不能在代码正文中使用 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”提供了一个答案:

要安装 node-sass 导航到终端中的项目目录 并运行以下命令: npm install gulp gulp-sass node-sass gulp-concat --save-dev

然后你可以交换 sass = require('gulp-sass');对于 const sass = require("gulp-sass")(require("node-sass"));

在我的情况下,代码进入了 gulpfile.js 文件,但由于它是声明的一部分,我不需要“const”

let gulp = require('gulp'),sass = require("gulp-sass")(require("node-sass")),...
,

(来自错误描述)

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

,

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...