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

Posted

技术标签:

【中文标题】Gulp-sass 5.0 如何使用带有 import() 而不是 require() 的编译器?【英文标题】:Gulp-sass 5.0 how to use compiler with import() instead of require()? 【发布时间】:2021-09-11 12:34:00 【问题描述】:

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 版。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

(来自错误描述)

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

【讨论】:

【参考方案3】:
import gulpSass from "gulp-sass";
import nodeSass from "node-sass";
    
const sass = gulpSass(nodeSass);

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

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

【讨论】:

gulpfile.js 不想添加导入如何解决问题? import gulpSass from "gulp-sass"; ^^^^^^ SyntaxError: Cannot use import statement outside a module 【参考方案4】:

来自sass github repository

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

【讨论】:

【参考方案5】:

您不能在代码主体中使用 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 萨斯 = require("gulp-sass")(require("node-sass"));

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

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

【讨论】:

以上是关于Gulp-sass 5.0 如何使用带有 import() 而不是 require() 的编译器?的主要内容,如果未能解决你的问题,请参考以下文章

错误:找不到模块“gulp-sass”

如何在带有 Android 5.0 Lollipop 的代码(不是 xml)中以编程方式使用 RippleDrawable?

无法安装 gulp-sass

我们如何使用带有 Spring 5.0 的最新 spring-security-oauth2 jar 来实现授权服务器?

使用 Bower 安装 Gulp-Sass 时出现 ENOTFound 错误

带有 Spring-boot XML 配置的 Couchbase 5.0