在已经建立的应用程序中引入新的前端堆栈(Vue3,TailWind CSS).

旧的堆栈有依赖关系,其中包括与TailWind冲突的CSS类.

最终目标是使用100 Vue和TailwinCSS,所以我不想在开发过程中使用前缀,因为它不是必需的……但我需要同时支持旧的和新的堆栈,直到我能够完全删除旧的css.

我知道在TW配置(prefix: 'tw-',)中使用了前缀属性,但这意味着源.VUE文件将需要使用前缀.

我是否可以告诉Vue在build only期间(使用Vite)为所有类添加前缀,然后同样将规则传递给TailWind在build only期间添加前缀(但在开发过程中不是必需的)?

我看到一个类似的问题,其中一个答案提到,如果这在TW存在,那么TW如何知道哪些应该皈依,哪些不应该……我明白这一点,但在我的方案中,我没有其他插件.

我已经简单地看了一下postcss-prefixer美元,但不确定这是否是我需要的……

我想我可以只使用TW前缀,因为它不是世界末日,但对我的最终目标感到肮脏…

推荐答案

What you want to achieve does not seem possible - how would Vite (or Vue template compiler) know which CSS classes are Tailwind's and which are coming from your old stack, if they have the same name? The only way to avoid such collissions is to use the prefix in TW config.
It might look dirty (to you) - but I always use the prefix even when Tailwind is the only CSS framework in the project because in the future there could be a third-party dependency which has conflicting CSS classes.

也许最干净的解决方案是彻底重构您的应用程序,并通过移除/转换所有旧的CSS来完全切换到TailWind.

Vue.js相关问答推荐

无法从CDN使用Vue和PrimeVue呈现DataTable

用于循环数组的模板元素内的条件渲染

使用内部方法创建计算(computed)属性是否合法?

Vuetify 3 - NavBar 组件占据整个视口高度

vue js如何将布尔值传到数据库

如何解决 importers[path] is not a function for clean Vue 3/Vite/Storybook installation

vue router/:param 斜杠的参数

使用 Nuxt 动态获取文件夹中的图像路径

Vuex 和 Event Bus 有什么区别?

Vue index.html favicon 问题

在组件上的 Vue 3 中获取 URL 查询参数

不需要提交Mutations的 vuex 操作

在组件之间共享数据

Vue JS 在渲染前等待数据

Vue CLI 3 sass-resources-loader - Options.loaders 未定义

过渡后的 v-if 下方的过渡元素

带有 Google Auth Signin 的 Vuejs 全局函数

VS Code - 在 .vue 文件中启用 autoClosingTags 选项

Vuejs 组件等待 facebook sdk 加载

Vue-i18n - 无法读取未定义的属性配置