惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
Cloudbric
Cloudbric
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
IT之家
IT之家
F
Full Disclosure
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
B
Blog
H
Help Net Security
The Cloudflare Blog
Recorded Future
Recorded Future
P
Proofpoint News Feed
P
Proofpoint News Feed
C
Cisco Blogs
T
Tailwind CSS Blog
P
Palo Alto Networks Blog
D
Docker
爱范儿
爱范儿
Know Your Adversary
Know Your Adversary
博客园 - 聂微东
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Y
Y Combinator Blog
雷峰网
雷峰网
AWS News Blog
AWS News Blog
D
DataBreaches.Net
博客园 - 司徒正美
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - Franky
C
Cybersecurity and Infrastructure Security Agency CISA
Blog — PlanetScale
Blog — PlanetScale
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Latest news
Latest news
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
C
CERT Recently Published Vulnerability Notes
阮一峰的网络日志
阮一峰的网络日志
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CXSECURITY Database RSS Feed - CXSecurity.com
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cyber Attacks, Cyber Crime and Cyber Security
腾讯CDC
小众软件
小众软件
G
Google Developers Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Scott Helme
Scott Helme
O
OpenAI News

博客园 - SHENHUANJIE

Marvis 使用进阶:联动与外部资源整合 这是一篇用 Marvis发布的文章,让大家都去用 Marvis 程序员保持高效的5个习惯 Kimi WebBridge:让 AI 真正操控你的浏览器 腾讯突然扔出王炸!马维斯一夜刷屏,打工人终于有救了? AIGC-测试库账号密码 openspec 是什么?怎么正确使用? # Hello World 的传奇起源 Please Start Here AI助手记忆系统:从金鱼到大象的进化之路 mac 快速切换 python 版本 卢曼卡片盒笔记法介绍 Introduction to the Zettelkasten Method Uni-app页面信息与元素影响解析 DevOps 入门指南:基础知识解读 「读书计划」《啊哈!算法》7日结构化学习规划 Java RestTemplate 发送 POST 请求设置请求体示例 跨平台开发方案:优缺点对比及选择指南 Java实现简单多层感知器神经网络 Google开发者账号注册步骤详解 ipify.org:免费IP查询服务详解 Google开发者利器:云平台与Firebase服务解析 Google Fonts字体库使用指南 UNI-APP + Spring Boot 实现小程序手机号登录 UNI-APP 获取用户手机号授权与服务器端处理指南 MySQL 8.0 如何禁用 ONLY_FULL_GROUP_BY 平衡工作与生活的10个实用方法 Linux安装Ollama并启用服务教程 如何在 LobeChat 中使用 Ollama
Deprecation Warning: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.
SHENHUANJIE · 2025-01-03 · via 博客园 - SHENHUANJIE

image

如果你遇到的“Deprecation Warning: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.”警告,以下是详细的解释和解决方案:

背景信息

  Dart Sass 最初使用的是基于 Node Sass 的 API,但在 Dart Sass 1.45.0 版本中,这一旧版 API 被新的现代 API 所取代。旧版 JS API 现已弃用,并将在 Dart Sass 2.0.0 中完全移除

旧版 API 和现代 API 的对比

  旧版 API:

  • render​:用于异步编译 Sass,接收一个包含 file​(编译文件)或 data​(编译字符串)的选项对象。
  • renderSync​:用于同步编译 Sass,同样接收一个包含 file​ 或 data​ 的选项对象。

  现代 API:

  • compile​:用于编译文件,返回一个 Promise​。
  • compileAsync​:用于异步编译文件。
  • compileString​:用于编译字符串,返回一个 Promise​。
  • compileStringAsync​:用于异步编译字符串。

  现代 API 的这些函数将路径或源字符串作为其第一个参数,然后将所有其他选项的对象作为其第二个参

解决方案

  1. 迁移到现代 API:

    • 将代码中使用的 render​ 和 renderSync​ 替换为新的 compile​、compileAsync​、compileString​ 或 compileStringAsync​ 函数。
    • 例如,将 render({ file: 'path/to/file.scss' })​ 替换为 compile('path/to/file.scss', {})​。
  2. 配置文件修改:

    • 如果你使用的是构建工具(如 Vite),可以在配置文件中设置 API 为 “modern” 或 “modern-compiler” 来解决警告问题。
  3. 逐步迁移:

    • 尽快计划并逐步迁移现有的 Sass 代码,以避免未来的兼容性问题

参考链接

  通过以上步骤,你可以解决当前的弃用警告,并确保代码在未来版本的 Dart Sass 中继续正常工作。

以下针对解决方案中,第 2 点进行具体说明

在构建工具中配置现代 API

  如果你使用的是现代前端构建工具(如 Vite、Webpack 等),可以通过修改配置文件来指定使用新的现代 API,从而消除弃用警告。

Vite 配置示例

  1. 找到 Vite 配置文件: 通常情况下,Vite 的配置文件名为 vite.config.js​ 或 vite.config.ts​。
  2. 修改配置文件: 在配置文件中,你可以通过设置 css.preprocessorOptions​ 来指定使用现代 API。以下是一个具体的示例:
// vite.config.js
import { defineConfig } from 'vite';

export default defineConfig({
  // 其他配置...
  css: {
    preprocessorOptions: {
      sass: {
        api: 'modern' // 或者 'modern-compiler'
      }
    }
  }
});

  在这个配置中:

  • css.preprocessorOptions​ 用于配置 CSS 预处理器选项。
  • sass​ 对象下的 api​ 属性被设置为 'modern'​ 或 'modern-compiler'​,这告诉 Vite 使用新的现代 API 来编译 Sass 文件。
  1. 重新启动项目: 保存配置文件的修改后,重新启动你的项目。此时,弃用警告应该会消失。

Webpack 配置示例

  如果你使用的是 Webpack,可以通过类似的方式来配置:

  1. 找到 Webpack 配置文件: 通常情况下,Webpack 的配置文件名为 webpack.config.js​。
  2. 修改配置文件: 在配置文件中,你可以通过设置 module.rules​ 来指定使用现代 API。以下是一个具体的示例:
// webpack.config.js
module.exports = {
  // 其他配置...
  module: {
    rules: [
      {
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          {
            loader: 'sass-loader',
            options: {
              api: 'modern' // 或者 'modern-compiler'
            }
          }
        ]
      }
    ]
  }
};

  在这个配置中:

  • module.rules​ 用于配置模块加载规则。
  • sass-loader​ 的 options​ 属性被设置为 { api: 'modern' }​ 或 { api: 'modern-compiler' }​,这告诉 Webpack 使用新的现代 API 来编译 Sass 文件。
  1. 重新启动项目: 保存配置文件的修改后,重新启动你的项目。此时,弃用警告应该会消失。

总结

  通过在构建工具的配置文件中指定使用现代 API,可以有效地消除由于旧版 JS API 弃用而产生的警告。这种方法不需要修改大量的代码,是一种简便且高效的解决方案。

参考链接

  希望这些详细说明能帮助你顺利解决弃用警告问题。