当前位置:   article > 正文

vite打包报错:“@charset“ must be the first rule in the file_internal:charset-removal

internal:charset-removal

问题原因

  • postcss给含有中文的scss 加了个@charset:UTF-8;
  • element-plus的index.css文件包含@charset:UTF-8

在组合css时@charset的位置并不是在头部(或最前面),同时本地scss如果有中文也会自动添加@charset:UTF-8。因此build时就会warning提示错误了。

解决方案

修改vite.config.js,添加charset:false禁止项目scss添加@charset:UTF-8
同时配置postcss删除库里的@charset:UTF-8

  1. export default defineConfig({
  2. css: {
  3. preprocessorOptions: {
  4. scss: {
  5. charset: false
  6. }
  7. },
  8. postcss: {
  9. plugins: [
  10. {
  11. postcssPlugin: 'internal:charset-removal',
  12. AtRule: {
  13. charset: (atRule) => {
  14. if (atRule.name === 'charset') {
  15. atRule.remove();
  16. }
  17. }
  18. }
  19. }
  20. ],
  21. },
  22. },
  23. })


 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号