vite 有什么插件会把 unicode 转成中文吗

2023-08-22 12:04:26 +08:00
 chenliangngng
我本地 css 代码里面中文都是用 unicode 写的,本地调试没问题。

但是 build 之后 unicode 变成了中文(直接看 dist 里面的 css),导致生产环境偶发中文乱码。

项目是 vue3+vite+antdv


其他插件
```
"@vitejs/plugin-vue":"^2.3.1",
"@vitejs/plugin-vue-jsx":."^1.3.10",
"vite":"^2.9.7",
"vite-babel-plugin":"0.0.2",
"vite-plugin-cesium":"1.2.10",
"vite-plugin-commonjs-externals":"00.1.1",
```
1931 次点击
所在节点    Vite
8 条回复
zsj1029
2023-08-22 12:09:31 +08:00
Vite3 还是 4 已经把 Unicode 改成中文了,我这边实际使用,Unicode 没遇到问题,升级 vitw 版本可以解决
chenliangngng
2023-08-22 12:16:44 +08:00
@zsj1029 我的问题是我代码里面的 unicode 变成中文了,我想阻止这个
z13zvxc
2023-08-22 12:29:51 +08:00
问题不在于 vite 是 esbuild 打包会转译 css 里面的 unicode 字符串。我没发现 esbuild 有什么选项能支持不转译,我的临时解决办法是把这个 css 文件独立出来直接在 index.html 引用,不让 esbuild 打包。
oott123
2023-08-22 12:53:24 +08:00
chenliangngng
2023-08-22 15:09:53 +08:00
@z13zvxc 试了下确实没什么解决方法,只能按你的方法把内容单独拉出来解决
z13zvxc
2023-08-22 16:45:52 +08:00
@oott123
问题是期望
echo 'let \u03C0 = Math.PI' | esbuild --charset=utf8
let \u03C0 = Math.PI;
实际是
echo 'let \u03C0 = Math.PI' | esbuild --charset=utf8
let π = Math.PI;
z13zvxc
2023-08-22 16:56:14 +08:00
我明白问题了
我们需要 指定 esbuild 对指定问题文件 不使用 --charset=utf8
比如:
echo 'let \u03C0 = Math.PI' | esbuild
let \u03C0 = Math.PI;
得到的就是原始输入 现在问题其实是因为 vite 默认构建选项加了--charset=utf8
Arthur2e5
2023-08-22 20:57:20 +08:00
一个不能把 utf8 字节好好标记成 utf8 字节的“生产环境”是更大的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/967335

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX