mirror of
https://github.com/motajs/template.git
synced 2026-11-07 10:14:30 +08:00
refactor: 删除 @motajs/client @motajs/client-base
This commit is contained in:
1 parent
ad37186068
commit
01c84ffb18
16 files changed
+200
-264
No files matched your search
@@ -3,13 +3,13 @@
|
||||
"dependencies": {
|
||||
"@motajs/audio": "workspace:*",
|
||||
"@motajs/render": "workspace:*",
|
||||
"@motajs/client-base": "workspace:*",
|
||||
"@user/data-base": "workspace:*",
|
||||
"@user/data-state": "workspace:*",
|
||||
"@motajs/animate": "workspace:*",
|
||||
"@motajs/common": "workspace:*",
|
||||
"@motajs/render-vue": "workspace:*",
|
||||
"@motajs/system": "workspace:*",
|
||||
"@user/data-common": "workspace:*"
|
||||
"@user/data-common": "workspace:*",
|
||||
"@user/data-base": "workspace:*",
|
||||
"@user/data-system": "workspace:*",
|
||||
"@user/data-state": "workspace:*"
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,11 @@
|
||||
{
|
||||
"name": "@user/client-modules",
|
||||
"dependencies": {
|
||||
"@motajs/audio": "workspace:*",
|
||||
"@motajs/animate": "workspace:*",
|
||||
"@motajs/client-base": "workspace:*",
|
||||
"@motajs/common": "workspace:*",
|
||||
"@motajs/render": "workspace:*",
|
||||
"@motajs/render-vue": "workspace:*",
|
||||
"@motajs/types": "workspace:*",
|
||||
"@motajs/system": "workspace:*",
|
||||
"@user/client-base": "workspace:*",
|
||||
"@user/client-system": "workspace:*",
|
||||
|
||||
@@ -1,196 +1,198 @@
|
||||
import { compressToBase64, decompressFromBase64 } from 'lz-string';
|
||||
import { getConfirm, waitbox, IGameUIPropsBase } from '@user/client-base';
|
||||
import { IUIController } from '@motajs/system';
|
||||
import { SyncSaveFromServerResponse } from '@motajs/client-base';
|
||||
import { CENTER_LOC, POP_BOX_WIDTH } from '../../shared';
|
||||
// TODO: 需要换用新的接口,且需要做网络存档支持
|
||||
|
||||
export interface SaveData {
|
||||
name: string;
|
||||
version: string;
|
||||
data: Save;
|
||||
}
|
||||
// import { compressToBase64, decompressFromBase64 } from 'lz-string';
|
||||
// import { getConfirm, waitbox, IGameUIPropsBase } from '@user/client-base';
|
||||
// import { IUIController } from '@motajs/system';
|
||||
// import { SyncSaveFromServerResponse } from '@motajs/client-base';
|
||||
// import { CENTER_LOC, POP_BOX_WIDTH } from '../../shared';
|
||||
|
||||
export interface SaveDataArray {
|
||||
name: string;
|
||||
version: string;
|
||||
data: Save[];
|
||||
}
|
||||
// export interface SaveData {
|
||||
// name: string;
|
||||
// version: string;
|
||||
// data: Save;
|
||||
// }
|
||||
|
||||
export function getSave(index: number) {
|
||||
return new Promise<SaveData | null>(res => {
|
||||
core.getSave(index, data => {
|
||||
if (!data) {
|
||||
res(null);
|
||||
return;
|
||||
}
|
||||
const content = {
|
||||
name: core.firstData.name,
|
||||
version: core.firstData.version,
|
||||
data: data instanceof Array ? data.at(-1)! : data
|
||||
};
|
||||
res(content);
|
||||
});
|
||||
});
|
||||
}
|
||||
// export interface SaveDataArray {
|
||||
// name: string;
|
||||
// version: string;
|
||||
// data: Save[];
|
||||
// }
|
||||
|
||||
export function getAllSaves() {
|
||||
return new Promise<SaveDataArray | null>(res => {
|
||||
core.getAllSaves(saves => {
|
||||
if (!saves) {
|
||||
res(null);
|
||||
return;
|
||||
}
|
||||
const content = {
|
||||
name: core.firstData.name,
|
||||
version: core.firstData.version,
|
||||
data: saves
|
||||
};
|
||||
res(content);
|
||||
});
|
||||
});
|
||||
}
|
||||
// export function getSave(index: number) {
|
||||
// return new Promise<SaveData | null>(res => {
|
||||
// core.getSave(index, data => {
|
||||
// if (!data) {
|
||||
// res(null);
|
||||
// return;
|
||||
// }
|
||||
// const content = {
|
||||
// name: core.firstData.name,
|
||||
// version: core.firstData.version,
|
||||
// data: data instanceof Array ? data.at(-1)! : data
|
||||
// };
|
||||
// res(content);
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
|
||||
export async function getSaveData(index: number) {
|
||||
const data = await getSave(index);
|
||||
if (!data) return '';
|
||||
return compressToBase64(JSON.stringify(data));
|
||||
}
|
||||
// export function getAllSaves() {
|
||||
// return new Promise<SaveDataArray | null>(res => {
|
||||
// core.getAllSaves(saves => {
|
||||
// if (!saves) {
|
||||
// res(null);
|
||||
// return;
|
||||
// }
|
||||
// const content = {
|
||||
// name: core.firstData.name,
|
||||
// version: core.firstData.version,
|
||||
// data: saves
|
||||
// };
|
||||
// res(content);
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
|
||||
export async function getAllSavesData() {
|
||||
const data = await getAllSaves();
|
||||
if (!data) return '';
|
||||
return compressToBase64(JSON.stringify(data));
|
||||
}
|
||||
// export async function getSaveData(index: number) {
|
||||
// const data = await getSave(index);
|
||||
// if (!data) return '';
|
||||
// return compressToBase64(JSON.stringify(data));
|
||||
// }
|
||||
|
||||
//#region 服务器加载
|
||||
// export async function getAllSavesData() {
|
||||
// const data = await getAllSaves();
|
||||
// if (!data) return '';
|
||||
// return compressToBase64(JSON.stringify(data));
|
||||
// }
|
||||
|
||||
const enum FromServerResponse {
|
||||
Success,
|
||||
ErrorCannotParse,
|
||||
ErrorCannotSync,
|
||||
ErrorUnexpectedCode
|
||||
}
|
||||
// //#region 服务器加载
|
||||
|
||||
function parseIdPassword(id: string): [string, string] {
|
||||
if (id.length === 7) return [id.slice(0, 4), id.slice(4)];
|
||||
else return [id.slice(0, 6), id.slice(6)];
|
||||
}
|
||||
// const enum FromServerResponse {
|
||||
// Success,
|
||||
// ErrorCannotParse,
|
||||
// ErrorCannotSync,
|
||||
// ErrorUnexpectedCode
|
||||
// }
|
||||
|
||||
async function parseResponse(response: SyncSaveFromServerResponse) {
|
||||
let msg: Save | Save[] | null = null;
|
||||
try {
|
||||
msg = JSON.parse(decompressFromBase64(response.msg));
|
||||
} catch {
|
||||
// 无视报错
|
||||
}
|
||||
if (!msg) {
|
||||
try {
|
||||
msg = JSON.parse(response.msg);
|
||||
} catch {
|
||||
// 无视报错
|
||||
}
|
||||
}
|
||||
if (msg) {
|
||||
return msg;
|
||||
} else {
|
||||
return FromServerResponse.ErrorCannotParse;
|
||||
}
|
||||
}
|
||||
// function parseIdPassword(id: string): [string, string] {
|
||||
// if (id.length === 7) return [id.slice(0, 4), id.slice(4)];
|
||||
// else return [id.slice(0, 6), id.slice(6)];
|
||||
// }
|
||||
|
||||
async function syncLoad(id: string, password: string) {
|
||||
const formData = new FormData();
|
||||
formData.append('type', 'load');
|
||||
formData.append('name', core.firstData.name);
|
||||
formData.append('id', id);
|
||||
formData.append('password', password);
|
||||
// async function parseResponse(response: SyncSaveFromServerResponse) {
|
||||
// let msg: Save | Save[] | null = null;
|
||||
// try {
|
||||
// msg = JSON.parse(decompressFromBase64(response.msg));
|
||||
// } catch {
|
||||
// // 无视报错
|
||||
// }
|
||||
// if (!msg) {
|
||||
// try {
|
||||
// msg = JSON.parse(response.msg);
|
||||
// } catch {
|
||||
// // 无视报错
|
||||
// }
|
||||
// }
|
||||
// if (msg) {
|
||||
// return msg;
|
||||
// } else {
|
||||
// return FromServerResponse.ErrorCannotParse;
|
||||
// }
|
||||
// }
|
||||
|
||||
try {
|
||||
const response = await fetch('/games/sync.php', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
});
|
||||
// async function syncLoad(id: string, password: string) {
|
||||
// const formData = new FormData();
|
||||
// formData.append('type', 'load');
|
||||
// formData.append('name', core.firstData.name);
|
||||
// formData.append('id', id);
|
||||
// formData.append('password', password);
|
||||
|
||||
const data = (await response.json()) as SyncSaveFromServerResponse;
|
||||
if (data.code === 0) {
|
||||
return parseResponse(data);
|
||||
} else {
|
||||
return FromServerResponse.ErrorUnexpectedCode;
|
||||
}
|
||||
} catch {
|
||||
return FromServerResponse.ErrorCannotSync;
|
||||
}
|
||||
}
|
||||
// try {
|
||||
// const response = await fetch('/games/sync.php', {
|
||||
// method: 'POST',
|
||||
// body: formData
|
||||
// });
|
||||
|
||||
export async function syncFromServer(
|
||||
controller: IUIController<IGameUIPropsBase>,
|
||||
identifier: string
|
||||
): Promise<void> {
|
||||
if (!/^\d{6}\w{4}$/.test(identifier) && !/^\d{4}\w{3}$/.test(identifier)) {
|
||||
return void getConfirm(
|
||||
controller,
|
||||
'不合法的存档编号+密码!请检查格式!',
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
}
|
||||
const [id, password] = parseIdPassword(identifier);
|
||||
const result = await waitbox(
|
||||
controller,
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH,
|
||||
syncLoad(id, password)
|
||||
);
|
||||
if (typeof result === 'number') {
|
||||
const map = {
|
||||
[FromServerResponse.ErrorCannotParse]: '出错啦!\n存档解析失败',
|
||||
[FromServerResponse.ErrorCannotSync]:
|
||||
'出错啦!\n无法从服务器同步存档。',
|
||||
[FromServerResponse.ErrorUnexpectedCode]:
|
||||
'出错啦!\n无法从服务器同步存档。'
|
||||
};
|
||||
return void getConfirm(
|
||||
controller,
|
||||
map[result],
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
}
|
||||
if (result instanceof Array) {
|
||||
const confirm = await getConfirm(
|
||||
controller,
|
||||
'所有本地存档都将被覆盖,确认?',
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH,
|
||||
{
|
||||
defaultYes: true
|
||||
}
|
||||
);
|
||||
if (confirm) {
|
||||
const max = 5 * (main.savePages || 30);
|
||||
for (let i = 1; i <= max; i++) {
|
||||
if (i <= result.length) {
|
||||
core.setLocalForage('save' + i, result[i - 1]);
|
||||
} else if (core.saves.ids[i]) {
|
||||
core.removeLocalForage('save' + i);
|
||||
}
|
||||
}
|
||||
return void getConfirm(
|
||||
controller,
|
||||
'同步成功!\n你的本地所有存档均已被覆盖。',
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
}
|
||||
} else {
|
||||
const idx = core.saves.saveIndex;
|
||||
await new Promise<void>(res => {
|
||||
core.setLocalForage(`save${idx}`, result, res);
|
||||
});
|
||||
return void getConfirm(
|
||||
controller,
|
||||
`同步成功!\n单存档已覆盖至存档 ${idx}`,
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
}
|
||||
}
|
||||
// const data = (await response.json()) as SyncSaveFromServerResponse;
|
||||
// if (data.code === 0) {
|
||||
// return parseResponse(data);
|
||||
// } else {
|
||||
// return FromServerResponse.ErrorUnexpectedCode;
|
||||
// }
|
||||
// } catch {
|
||||
// return FromServerResponse.ErrorCannotSync;
|
||||
// }
|
||||
// }
|
||||
|
||||
// export async function syncFromServer(
|
||||
// controller: IUIController<IGameUIPropsBase>,
|
||||
// identifier: string
|
||||
// ): Promise<void> {
|
||||
// if (!/^\d{6}\w{4}$/.test(identifier) && !/^\d{4}\w{3}$/.test(identifier)) {
|
||||
// return void getConfirm(
|
||||
// controller,
|
||||
// '不合法的存档编号+密码!请检查格式!',
|
||||
// CENTER_LOC,
|
||||
// POP_BOX_WIDTH
|
||||
// );
|
||||
// }
|
||||
// const [id, password] = parseIdPassword(identifier);
|
||||
// const result = await waitbox(
|
||||
// controller,
|
||||
// CENTER_LOC,
|
||||
// POP_BOX_WIDTH,
|
||||
// syncLoad(id, password)
|
||||
// );
|
||||
// if (typeof result === 'number') {
|
||||
// const map = {
|
||||
// [FromServerResponse.ErrorCannotParse]: '出错啦!\n存档解析失败',
|
||||
// [FromServerResponse.ErrorCannotSync]:
|
||||
// '出错啦!\n无法从服务器同步存档。',
|
||||
// [FromServerResponse.ErrorUnexpectedCode]:
|
||||
// '出错啦!\n无法从服务器同步存档。'
|
||||
// };
|
||||
// return void getConfirm(
|
||||
// controller,
|
||||
// map[result],
|
||||
// CENTER_LOC,
|
||||
// POP_BOX_WIDTH
|
||||
// );
|
||||
// }
|
||||
// if (result instanceof Array) {
|
||||
// const confirm = await getConfirm(
|
||||
// controller,
|
||||
// '所有本地存档都将被覆盖,确认?',
|
||||
// CENTER_LOC,
|
||||
// POP_BOX_WIDTH,
|
||||
// {
|
||||
// defaultYes: true
|
||||
// }
|
||||
// );
|
||||
// if (confirm) {
|
||||
// const max = 5 * (main.savePages || 30);
|
||||
// for (let i = 1; i <= max; i++) {
|
||||
// if (i <= result.length) {
|
||||
// core.setLocalForage('save' + i, result[i - 1]);
|
||||
// } else if (core.saves.ids[i]) {
|
||||
// core.removeLocalForage('save' + i);
|
||||
// }
|
||||
// }
|
||||
// return void getConfirm(
|
||||
// controller,
|
||||
// '同步成功!\n你的本地所有存档均已被覆盖。',
|
||||
// CENTER_LOC,
|
||||
// POP_BOX_WIDTH
|
||||
// );
|
||||
// }
|
||||
// } else {
|
||||
// const idx = core.saves.saveIndex;
|
||||
// await new Promise<void>(res => {
|
||||
// core.setLocalForage(`save${idx}`, result, res);
|
||||
// });
|
||||
// return void getConfirm(
|
||||
// controller,
|
||||
// `同步成功!\n单存档已覆盖至存档 ${idx}`,
|
||||
// CENTER_LOC,
|
||||
// POP_BOX_WIDTH
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
@@ -1,8 +1,6 @@
|
||||
{
|
||||
"name": "@user/entry-client",
|
||||
"dependencies": {
|
||||
"@motajs/client": "workspace:*",
|
||||
"@motajs/client-base": "workspace:*",
|
||||
"@motajs/common": "workspace:*",
|
||||
"@motajs/render": "workspace:*",
|
||||
"@motajs/render-vue": "workspace:*",
|
||||
|
||||
@@ -1,22 +1,14 @@
|
||||
import { Mota } from '@user/entry-data';
|
||||
import * as Client from '@motajs/client';
|
||||
import * as ClientBase from '@motajs/client-base';
|
||||
import * as Render from '@motajs/render';
|
||||
import * as RenderVue from '@motajs/render-vue';
|
||||
import * as System from '@motajs/system';
|
||||
import * as UserClientBase from '@user/client-base';
|
||||
import * as ClientModules from '@user/client-modules';
|
||||
import * as Vue from 'vue';
|
||||
import * as Lodash from 'lodash-es';
|
||||
|
||||
export function create() {
|
||||
Mota.register('@motajs/client', Client);
|
||||
Mota.register('@motajs/client-base', ClientBase);
|
||||
Mota.register('@motajs/render', Render);
|
||||
Mota.register('@motajs/render-vue', RenderVue);
|
||||
Mota.register('@motajs/system', System);
|
||||
Mota.register('@user/client-base', UserClientBase);
|
||||
Mota.register('@user/client-modules', ClientModules);
|
||||
Mota.register('Vue', Vue);
|
||||
Mota.register('Lodash', Lodash);
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
import type * as Client from '@motajs/client';
|
||||
import type * as ClientBase from '@motajs/client-base';
|
||||
import type * as Common from '@motajs/common';
|
||||
import type * as Render from '@motajs/render';
|
||||
import type * as RenderVue from '@motajs/render-vue';
|
||||
@@ -10,13 +8,8 @@ import type * as DataCommon from '@user/data-common';
|
||||
import type * as DataBase from '@user/data-base';
|
||||
import type * as DataSystem from '@user/data-system';
|
||||
import type * as DataState from '@user/data-state';
|
||||
// ---------- 必要的第三方库
|
||||
import type * as Vue from 'vue';
|
||||
import type * as Lodash from 'lodash-es';
|
||||
|
||||
interface ModuleInterface {
|
||||
'@motajs/client': typeof Client;
|
||||
'@motajs/client-base': typeof ClientBase;
|
||||
'@motajs/common': typeof Common;
|
||||
'@motajs/render': typeof Render;
|
||||
'@motajs/render-vue': typeof RenderVue;
|
||||
@@ -27,9 +20,6 @@ interface ModuleInterface {
|
||||
'@user/data-base': typeof DataBase;
|
||||
'@user/data-system': typeof DataSystem;
|
||||
'@user/data-state': typeof DataState;
|
||||
// ---------- 必要的第三方库
|
||||
Vue: typeof Vue;
|
||||
Lodash: typeof Lodash;
|
||||
}
|
||||
|
||||
export interface IMota {
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"name": "@motajs/client-base"
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
export * from './glUtils';
|
||||
export * from './types';
|
||||
@@ -1,8 +0,0 @@
|
||||
export interface ResponseBase {
|
||||
code: number;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export interface SyncSaveFromServerResponse extends ResponseBase {
|
||||
msg: string;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "@motajs/client",
|
||||
"dependencies": {
|
||||
"@motajs/client-base": "workspace:*"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
export * from '@motajs/client-base';
|
||||
@@ -15,7 +15,7 @@ import vert from './shader/pack.vert?raw';
|
||||
import frag from './shader/pack.frag?raw';
|
||||
import { logger } from '@motajs/common';
|
||||
import { isNil } from 'lodash-es';
|
||||
import { compileProgramWith } from '@motajs/client-base';
|
||||
import { compileProgramWith } from '../utils';
|
||||
import { SizedCanvasImageSource } from '../types';
|
||||
|
||||
interface IndexMarkedComposedData {
|
||||
@@ -32,9 +32,7 @@ export interface IGridComposerData {
|
||||
readonly height: number;
|
||||
}
|
||||
|
||||
export class TextureGridComposer
|
||||
implements ITextureComposer<IGridComposerData>
|
||||
{
|
||||
export class TextureGridComposer implements ITextureComposer<IGridComposerData> {
|
||||
/**
|
||||
* 网格组合器,将等大小的贴图组合成图集,要求每个贴图的尺寸一致。
|
||||
* 组合时按照先从左到右,再从上到下的顺序组合。
|
||||
@@ -120,9 +118,7 @@ interface MaxRectsRectangle extends IRectangle {
|
||||
readonly data: ITexture;
|
||||
}
|
||||
|
||||
export class TextureMaxRectsComposer
|
||||
implements ITextureComposer<IMaxRectsComposerData>
|
||||
{
|
||||
export class TextureMaxRectsComposer implements ITextureComposer<IMaxRectsComposerData> {
|
||||
/**
|
||||
* 使用 Max Rects 算法执行贴图整合,输入数据参考 {@link IMaxRectsComposerData},
|
||||
* 输出的纹理的图像源将会是不同的画布,注意与 {@link TextureMaxRectsWebGL2Composer} 区分
|
||||
@@ -187,9 +183,7 @@ interface RectProcessed {
|
||||
readonly attrib: Float32Array;
|
||||
}
|
||||
|
||||
export class TextureMaxRectsWebGL2Composer
|
||||
implements ITextureComposer<IMaxRectsComposerData>
|
||||
{
|
||||
export class TextureMaxRectsWebGL2Composer implements ITextureComposer<IMaxRectsComposerData> {
|
||||
/** 使用的画布 */
|
||||
readonly canvas: HTMLCanvasElement;
|
||||
/** 画布上下文 */
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
export * from './assets';
|
||||
export * from './core';
|
||||
export * from './style';
|
||||
|
||||
export * from './types';
|
||||
export * from './utils';
|
||||
File renamed without changes.
Generated
+5
-22
@@ -389,9 +389,6 @@ importers:
|
||||
'@motajs/audio':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/audio
|
||||
'@motajs/client-base':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/client-base
|
||||
'@motajs/common':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/common
|
||||
@@ -413,15 +410,18 @@ importers:
|
||||
'@user/data-state':
|
||||
specifier: workspace:*
|
||||
version: link:../data-state
|
||||
'@user/data-system':
|
||||
specifier: workspace:*
|
||||
version: link:../data-system
|
||||
|
||||
packages-user/client-modules:
|
||||
dependencies:
|
||||
'@motajs/animate':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/animate
|
||||
'@motajs/client-base':
|
||||
'@motajs/audio':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/client-base
|
||||
version: link:../../packages/audio
|
||||
'@motajs/common':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/common
|
||||
@@ -434,9 +434,6 @@ importers:
|
||||
'@motajs/system':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/system
|
||||
'@motajs/types':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/types
|
||||
'@user/client-base':
|
||||
specifier: workspace:*
|
||||
version: link:../client-base
|
||||
@@ -521,12 +518,6 @@ importers:
|
||||
|
||||
packages-user/entry-client:
|
||||
dependencies:
|
||||
'@motajs/client':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/client
|
||||
'@motajs/client-base':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/client-base
|
||||
'@motajs/common':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/common
|
||||
@@ -574,14 +565,6 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../loader
|
||||
|
||||
packages/client:
|
||||
dependencies:
|
||||
'@motajs/client-base':
|
||||
specifier: workspace:*
|
||||
version: link:../client-base
|
||||
|
||||
packages/client-base: {}
|
||||
|
||||
packages/common: {}
|
||||
|
||||
packages/loader:
|
||||
|
||||
@@ -7,10 +7,8 @@ const SPECIFIER_BANS: ReadonlyArray<readonly [RegExp, string]> = [
|
||||
[/^@user\/client-/, '@user/client-'],
|
||||
[/^@user\/entry-client(?:\/|$)/, '@user/entry-client'],
|
||||
[/^@motajs\/render(?:[/-]|$)/, '@motajs/render'],
|
||||
[/^@motajs\/client(?:[/-]|$)/, '@motajs/client'],
|
||||
[/^@motajs\/system(?:[/-]|$)/, '@motajs/system'],
|
||||
[/^@motajs\/audio(?:[/-]|$)/, '@motajs/audio'],
|
||||
[/^@motajs\/legacy-/, '@motajs/legacy-'],
|
||||
[/^vue(?:\/|$)/, 'vue'],
|
||||
[/^@vue\//, '@vue/'],
|
||||
[/^ant-design-vue(?:\/|$)/, 'ant-design-vue'],
|
||||
@@ -19,13 +17,11 @@ const SPECIFIER_BANS: ReadonlyArray<readonly [RegExp, string]> = [
|
||||
|
||||
/** 数据端构建中禁止出现的渲染端模块解析路径,第一项为匹配规则,第二项为报错时的命中标记 */
|
||||
const PATH_BANS: ReadonlyArray<readonly [RegExp, string]> = [
|
||||
[/[/\\]packages-user[/\\]client-/, 'packages-user/client-'],
|
||||
[/[/\\]packages[/\\]render(?:[/\\-]|$)/, 'packages/render'],
|
||||
[/[/\\]packages[/\\]render-vue(?:[/\\-]|$)/, 'packages/render-vue'],
|
||||
[/[/\\]packages[/\\]client(?:[/\\-]|$)/, 'packages/client'],
|
||||
[/[/\\]packages[/\\]system(?:[/\\-]|$)/, 'packages/system'],
|
||||
[/[/\\]packages[/\\]audio(?:[/\\-]|$)/, 'packages/audio'],
|
||||
[/[/\\]packages[/\\]legacy-/, 'packages/legacy-'],
|
||||
[/[/\\]src[/\\]client(?:[/\\]|$)/, 'src/client'],
|
||||
[
|
||||
/[/\\]node_modules[/\\](?:vue|@vue|ant-design-vue|@ant-design)(?:[/\\]|$)/,
|
||||
|
||||
Reference in new issue
Block a user