我有一个使用 T3 Stack(Next JS / Vercel / 等)构建的项目。 和我们许多人一样,我现在收到了 Dart Sass 2.0.0 上 SASS 弃用的警告。
我看到很多人建议消除警告。但这不是只是推迟了问题的发生吗?如果我错了,请纠正我,但是一旦你将 2.0 Sass 更新到它,这不会破坏你的代码吗?
我想了解的是如何解决它。 (不是让它沉默)。
我尝试将我的 Sass 导入更改为 @use / @forward,如 Sass 文档 上的建议。但后来我的应用程序崩溃了。
我还看到了一些使用 vite 的人向其 vite.config 添加选项的解决方案
export default defineConfig({
css: {
preprocessorOptions: {
scss: {
api: 'modern-compiler' // or "modern"
}
}
}
})
我已经在下一个配置中尝试过,但没有成功,错误仍然存在。 还尝试了对此进行有根据的猜测。
/** @type {import("next").NextConfig} */
const config = {
sassOptions: {
preprocessorOptions: {
sass: {
api: "modern",
},
},
},
};
但是错误仍然存在,我无法将我的@imports重构为@use或@forward
我不介意将所有 @import 重构为 @use 或 @forward。因为我想让项目保持新技术标准的新鲜感。
但是我如何设置它以在我的 NextJS (T3 Stack) 项目上工作? 你们会如何处理 T3 Stack (NextJS) 项目上的配置文件?
这似乎是“nextjs 内部的事情”,你不应该太担心。一旦他们将其迁移到“幕后”,可能会对 nextjs 版本产生一些影响。
您提到不想让它保持沉默,但如果您改变主意,您的 next.config.js 中有这个选项:
sassOptions: {
silenceDeprecations: ["legacy-js-api"],
},
在这里阅读更多相关内容: https://github.com/vercel/next.js/discussions/67931 在这里: https://github.com/vercel/next.js/issues/71638