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() 的编译器?的主要内容,如果未能解决你的问题,请参考以下文章
如何在带有 Android 5.0 Lollipop 的代码(不是 xml)中以编程方式使用 RippleDrawable?
我们如何使用带有 Spring 5.0 的最新 spring-security-oauth2 jar 来实现授权服务器?