Commit a4e70b9efe78ccf15c4e2d93ac194452f9a7a3e3

Authored by LittleSaya
Committed by GitHub
1 parent 4e3e7216

通过把名称编码成hex,使项目能够在VITE_GLOB_APP_TITLE包含特殊字符时正常打包 (#2910)

* Update env.ts

使getVariableName能处理含有特殊字符的标题

* Update appConfig.ts

是getVariableName能处理包含特殊字符的标题的情况
internal/vite-config/src/plugins/appConfig.ts
@@ -74,7 +74,16 @@ async function createAppConfigPlugin({ @@ -74,7 +74,16 @@ async function createAppConfigPlugin({
74 * @param env 74 * @param env
75 */ 75 */
76 const getVariableName = (title: string) => { 76 const getVariableName = (title: string) => {
77 - return `__PRODUCTION__${title || '__APP'}__CONF__`.toUpperCase().replace(/\s/g, ''); 77 + function strToHex(str: string) {
  78 + const result: string[] = [];
  79 + for (let i = 0; i < str.length; ++i) {
  80 + const hex = str.charCodeAt(i).toString(16);
  81 + result.push(('000' + hex).slice(-4));
  82 + }
  83 + return result.join('').toUpperCase();
  84 + }
  85 +
  86 + return `__PRODUCTION__${strToHex(title) || '__APP'}__CONF__`.toUpperCase().replace(/\s/g, '');
78 }; 87 };
79 88
80 async function getConfigSource(appTitle: string) { 89 async function getConfigSource(appTitle: string) {
src/utils/env.ts
@@ -2,9 +2,16 @@ import type { GlobEnvConfig } from &#39;/#/config&#39;; @@ -2,9 +2,16 @@ import type { GlobEnvConfig } from &#39;/#/config&#39;;
2 import pkg from '../../package.json'; 2 import pkg from '../../package.json';
3 3
4 const getVariableName = (title: string) => { 4 const getVariableName = (title: string) => {
5 - return `__PRODUCTION__${title.replace(/\s/g, '_').replace(/-/g, '_') || '__APP'}__CONF__`  
6 - .toUpperCase()  
7 - .replace(/\s/g, ''); 5 + function strToHex(str: string) {
  6 + const result: string[] = [];
  7 + for (let i = 0; i < str.length; ++i) {
  8 + const hex = str.charCodeAt(i).toString(16);
  9 + result.push(('000' + hex).slice(-4));
  10 + }
  11 + return result.join('').toUpperCase();
  12 + }
  13 +
  14 + return `__PRODUCTION__${strToHex(title) || '__APP'}__CONF__`.toUpperCase().replace(/\s/g, '');
8 }; 15 };
9 16
10 export function getCommonStoragePrefix() { 17 export function getCommonStoragePrefix() {