调整插件,支持 @oak-general-business 引用页面或组件
This commit is contained in:
parent
dbc3995559
commit
7249e30f3d
|
|
@ -197,10 +197,10 @@ exports.projectConfigContentWithWeChatMp = projectConfigContentWithWeChatMp;
|
||||||
function appJsonContentWithWeChatMp(isDev) {
|
function appJsonContentWithWeChatMp(isDev) {
|
||||||
const pages = [];
|
const pages = [];
|
||||||
if (isDev) {
|
if (isDev) {
|
||||||
pages.push("@oak-general-business/token/login/index");
|
pages.push("@oak-general-business/pages/token/login/index");
|
||||||
pages.push('@oak-general-business/address/list/index');
|
pages.push('@oak-general-business/pages/address/list/index');
|
||||||
pages.push('@oak-general-business/address/upsert/index');
|
pages.push('@oak-general-business/pages/address/upsert/index');
|
||||||
pages.push('@oak-general-business/pickers/area/index');
|
pages.push('@oak-general-business/pages/pickers/area/index');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pages.push('pages/index/index');
|
pages.push('pages/index/index');
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ const ensurePosix = require('ensure-posix-path');
|
||||||
const requiredPath = require('required-path');
|
const requiredPath = require('required-path');
|
||||||
|
|
||||||
const pluginName = 'OakWeChatMpPlugin';
|
const pluginName = 'OakWeChatMpPlugin';
|
||||||
const OakPagePrefix = '@oak-general-business';
|
const OakPagePrefix = '@oak-general-business/';
|
||||||
const OakPagePath = 'node_modules/oak-general-business/wechatMp/';
|
const OakPagePath = 'node_modules/oak-general-business/wechatMp/';
|
||||||
|
|
||||||
const MODE = {
|
const MODE = {
|
||||||
|
|
@ -204,8 +204,7 @@ class OakWeChatMpPlugin {
|
||||||
let isOak = getIsOak(page);
|
let isOak = getIsOak(page);
|
||||||
if (isOak) {
|
if (isOak) {
|
||||||
const oakPage =
|
const oakPage =
|
||||||
OakPagePath +
|
OakPagePath + page.replace(new RegExp(OakPagePrefix), '');
|
||||||
page.replace(new RegExp(OakPagePrefix), 'pages');
|
|
||||||
const instance = path.resolve(process.cwd(), oakPage);
|
const instance = path.resolve(process.cwd(), oakPage);
|
||||||
if (!this.oakPages.has(oakPage)) {
|
if (!this.oakPages.has(oakPage)) {
|
||||||
this.oakPages.add(oakPage);
|
this.oakPages.add(oakPage);
|
||||||
|
|
@ -271,6 +270,20 @@ class OakWeChatMpPlugin {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (getIsOak(c)) {
|
||||||
|
const oakComponent =
|
||||||
|
OakPagePath + c.replace(new RegExp(OakPagePrefix), '');
|
||||||
|
if (!this.oakComponents.has(oakComponent)) {
|
||||||
|
this.oakComponents.add(oakComponent);
|
||||||
|
components.add(oakComponent);
|
||||||
|
await this.getComponents(
|
||||||
|
components,
|
||||||
|
path.resolve(process.cwd(), oakComponent),
|
||||||
|
MODE.oak
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (mode === MODE.oak) {
|
if (mode === MODE.oak) {
|
||||||
const component = path
|
const component = path
|
||||||
.resolve(instanceDir, c)
|
.resolve(instanceDir, c)
|
||||||
|
|
@ -539,20 +552,61 @@ class OakWeChatMpPlugin {
|
||||||
const appJson = JSON.parse(source.toString());
|
const appJson = JSON.parse(source.toString());
|
||||||
|
|
||||||
let pages = [];
|
let pages = [];
|
||||||
for (let page of appJson.pages) {
|
if (appJson.pages) {
|
||||||
let isOak = getIsOak(page);
|
for (let page of appJson.pages) {
|
||||||
|
let isOak = getIsOak(page);
|
||||||
if (isOak) {
|
if (isOak) {
|
||||||
page = page.replace(
|
page = page.replace(
|
||||||
new RegExp(OakPagePrefix),
|
new RegExp(OakPagePrefix),
|
||||||
'pages'
|
''
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
pages.push(page);
|
||||||
}
|
}
|
||||||
pages.push(page);
|
appJson.pages = pages;
|
||||||
|
}
|
||||||
|
|
||||||
|
let usingComponents = {};
|
||||||
|
if (appJson.usingComponents) {
|
||||||
|
for (let ck of Object.keys(appJson.usingComponents)) {
|
||||||
|
let component = appJson.usingComponents[ck];
|
||||||
|
let isOak = getIsOak(component);
|
||||||
|
if (isOak) {
|
||||||
|
component = component.replace(
|
||||||
|
new RegExp(OakPagePrefix),
|
||||||
|
''
|
||||||
|
);
|
||||||
|
}
|
||||||
|
usingComponents[ck] = component;
|
||||||
|
}
|
||||||
|
appJson.usingComponents = usingComponents;
|
||||||
}
|
}
|
||||||
appJson.pages = pages;
|
|
||||||
source = Buffer.from(JSON.stringify(appJson, null, 2));
|
source = Buffer.from(JSON.stringify(appJson, null, 2));
|
||||||
size = source.length;
|
size = source.length;
|
||||||
|
} else if (/\.(json)$/.test(assets)) {
|
||||||
|
const json = JSON.parse(source.toString());
|
||||||
|
|
||||||
|
let usingComponents = {};
|
||||||
|
if (json.usingComponents) {
|
||||||
|
for (let ck of Object.keys(json.usingComponents)) {
|
||||||
|
let component = json.usingComponents[ck];
|
||||||
|
let isOak = getIsOak(component);
|
||||||
|
if (isOak) {
|
||||||
|
component = component.replace(
|
||||||
|
new RegExp(OakPagePrefix),
|
||||||
|
''
|
||||||
|
);
|
||||||
|
component = path.relative(
|
||||||
|
assets.substring(0, assets.lastIndexOf('/')),
|
||||||
|
path.resolve(this.basePath, component)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
usingComponents[ck] = component;
|
||||||
|
}
|
||||||
|
json.usingComponents = usingComponents;
|
||||||
|
}
|
||||||
|
source = Buffer.from(JSON.stringify(json, null, 2));
|
||||||
|
size = source.length;
|
||||||
}
|
}
|
||||||
compilation.assets[entry] = {
|
compilation.assets[entry] = {
|
||||||
size: () => size,
|
size: () => size,
|
||||||
|
|
|
||||||
|
|
@ -208,10 +208,10 @@ export function projectConfigContentWithWeChatMp(
|
||||||
export function appJsonContentWithWeChatMp(isDev: boolean) {
|
export function appJsonContentWithWeChatMp(isDev: boolean) {
|
||||||
const pages = [];
|
const pages = [];
|
||||||
if (isDev) {
|
if (isDev) {
|
||||||
pages.push("@oak-general-business/token/login/index");
|
pages.push("@oak-general-business/pages/token/login/index");
|
||||||
pages.push('@oak-general-business/address/list/index');
|
pages.push('@oak-general-business/pages/address/list/index');
|
||||||
pages.push('@oak-general-business/address/upsert/index');
|
pages.push('@oak-general-business/pages/address/upsert/index');
|
||||||
pages.push('@oak-general-business/pickers/area/index');
|
pages.push('@oak-general-business/pages/pickers/area/index');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pages.push('pages/index/index');
|
pages.push('pages/index/index');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue