@cloudbase/framework-plugin-low-code 0.7.4 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,UAAU,EAEV,OAAO,EAIR,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,YAAY,EACZ,UAAU,EACX,MAAM,iBAAiB,CAAC;AAUzB,wBAAsB,YAAY,CAAC,EACjC,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,aAAa,GACd,EAAE;IACD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAwSvC;AAqLD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,aAAa,iBAgCnB;AAYD,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,MAAM,EACN,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;;;EA0CA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,UAAU,EAEV,OAAO,EAIR,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,YAAY,EACZ,UAAU,EACX,MAAM,iBAAiB,CAAC;AAQzB,wBAAsB,YAAY,CAAC,EACjC,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,aAAa,GACd,EAAE;IACD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAgSvC;AAuLD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,aAAa,iBAkCnB;AAYD,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,MAAM,EACN,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;;;EA0CA"}
@@ -55,17 +55,15 @@ const types_1 = require("../../types");
55
55
  const common_1 = require("../types/common");
56
56
  const lodash_1 = require("lodash");
57
57
  const junk = __importStar(require("../util/junk"));
58
- const path_2 = __importDefault(require("path"));
59
58
  const net_1 = require("../util/net");
60
- const templateDir = config_1.appTemplateDir + '/mp/';
59
+ const templateDir = `${config_1.appTemplateDir}/mp/`;
61
60
  const em = chalk_1.default.blue.bold;
62
- const error = chalk_1.default.redBright;
63
61
  function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isProduction, deployMode, extraData, isMixMode, options, buildTypeList, }) {
64
62
  var _a;
65
63
  return __awaiter(this, void 0, void 0, function* () {
66
64
  const operationLabel = em('Wexin MiniProgram Generated');
67
65
  console.time(operationLabel);
68
- console.log('Generating ' + em('Wexin MiniProgram') + ' to ' + projDir);
66
+ console.log(`Generating ${em('Wexin MiniProgram')} to ${projDir}`);
69
67
  console.log(em('domain') + domain);
70
68
  let mainAppData = weapps[0];
71
69
  const buildContext = {
@@ -91,7 +89,7 @@ function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isPr
91
89
  const projectFileData = {
92
90
  'project.config.json': { content: projConfig },
93
91
  };
94
- console.log('Generating ' + em('project') + ' files');
92
+ console.log(`Generating ${em('project')} files`);
95
93
  yield (0, generateFiles_1.default)(projectFileData, templateDir, projDir, buildContext);
96
94
  }
97
95
  yield generatePkg(mainAppData, path_1.default.join(projDir, '/'), Object.assign(Object.assign({}, buildContext), { rootPath: mainAppData.rootPath }), pageConfigs[0]);
@@ -126,17 +124,7 @@ function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isPr
126
124
  yield (0, generateFiles_1.writeFile)(projectConfigJsonPath, JSON.stringify(projectConfigJson, undefined, 2));
127
125
  let appJsonPath = path_1.default.join(miniprogramRoot, 'app.json');
128
126
  let appJson = yield fs.readJson(appJsonPath);
129
- let subpackages = appJson.subpackages || [];
130
- for (let item of appConfig.subpackages || []) {
131
- let find = subpackages.find((config) => config.root === item.root);
132
- if (find) {
133
- find.pages = Array.from(new Set([].concat(find.pages || []).concat(item.pages || [])));
134
- }
135
- else {
136
- subpackages.push(item);
137
- }
138
- }
139
- appJson.subpackages = subpackages;
127
+ appJson.subpackages = (0, mp_config_1.mergeSubPackages)(appJson.subpackages, appConfig.subpackages);
140
128
  yield (0, generateFiles_1.writeFile)(appJsonPath, JSON.stringify(appJson, undefined, 2));
141
129
  }
142
130
  else {
@@ -263,10 +251,12 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
263
251
  pageSource: page.data.src || '',
264
252
  eventHanlders: (0, util_2.createEventHanlders)(page.componentInstances, '$page', ctx),
265
253
  dataBinds: (0, util_2.createDataBinds)(page.componentInstances, ctx),
266
- pageAttributes: Object.assign({}, (((_a = page.data) === null || _a === void 0 ? void 0 : _a.appShareMessage) ? { 'appShareMessage': page.data.appShareMessage.value } : {})),
254
+ pageAttributes: Object.assign({}, (((_a = page.data) === null || _a === void 0 ? void 0 : _a.appShareMessage)
255
+ ? { appShareMessage: page.data.appShareMessage.value }
256
+ : {})),
267
257
  debug: !ctx.isProduction,
268
258
  stringifyObj: util_1.inspect,
269
- subLevelPath: rootPath ? path_2.default.relative(rootPath, '') + '/' : '',
259
+ subLevelPath: rootPath ? path_1.default.relative(rootPath, '') + '/' : '',
270
260
  },
271
261
  [`index.json|${pageFileName}.json`]: {
272
262
  usingComponents,
@@ -277,7 +267,7 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
277
267
  },
278
268
  [`index.wxss|${pageFileName}.wxss`]: {
279
269
  subWxss: rootPath && !((_b = ctx.mainAppData) === null || _b === void 0 ? void 0 : _b.mpPkgUrl)
280
- ? `@import "${path_2.default.relative(`/${rootPath}/pages/${page.id}`, '/lowcode')}/style.wxss";`
270
+ ? `@import "${path_1.default.relative(`/${rootPath}/pages/${page.id}`, '/lowcode')}/style.wxss";`
281
271
  : '',
282
272
  content: (0, weapps_core_1.toCssText)((0, weapps_core_1.toCssStyle)(page.commonStyle, {
283
273
  toRem: false,
@@ -287,7 +277,7 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
287
277
  },
288
278
  'api.js': {},
289
279
  };
290
- yield (0, generateFiles_1.default)(pageFileData, templateDir + '/page', path_1.default.join(appRoot, 'pages', page.id), ctx);
280
+ yield (0, generateFiles_1.default)(pageFileData, `${templateDir}/page`, path_1.default.join(appRoot, 'pages', page.id), ctx);
291
281
  })));
292
282
  yield writeLowCodeFiles(weapp, appRoot, ctx);
293
283
  }
@@ -357,18 +347,19 @@ function generateFramework(appData, outDir, ctx) {
357
347
  }
358
348
  function writeLowCodeFiles(appData, outDir, ctx) {
359
349
  return __awaiter(this, void 0, void 0, function* () {
360
- console.log('Writing ' + em('lowcode') + ' files:');
350
+ console.log(`Writing ${em('lowcode')} files:`);
361
351
  const lowcodeRootDir = path_1.default.join(outDir, 'lowcode');
362
352
  const themeStyle = (0, style_1.generateDefaultTheme)(appData);
363
353
  if (!(ctx.isMixMode && appData.rootPath)) {
364
354
  yield Promise.all(appData.lowCodes
365
355
  .filter((mod) => mod.name !== '____index____')
356
+ .filter((mod) => mod.type !== 'renderer')
366
357
  .map((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { appDir: outDir }, themeStyle.code)));
367
358
  }
368
359
  yield Promise.all((0, weapps_core_1.loopDealWithFn)(appData.pageInstanceList, (page) => __awaiter(this, void 0, void 0, function* () {
369
360
  var _a;
370
361
  (0, style_1.generateDefaultStyle)(page);
371
- yield ((_a = page === null || page === void 0 ? void 0 : page.lowCodes) === null || _a === void 0 ? void 0 : _a.filter((mod) => mod.name !== '____index____').forEach((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { pageId: page.id, appDir: outDir }, themeStyle.code, ctx)));
362
+ yield ((_a = page === null || page === void 0 ? void 0 : page.lowCodes) === null || _a === void 0 ? void 0 : _a.filter((mod) => mod.name !== '____index____').filter((mod) => mod.type !== 'renderer').forEach((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { pageId: page.id, appDir: outDir }, themeStyle.code, ctx)));
372
363
  })));
373
364
  });
374
365
  }
@@ -1,12 +1,18 @@
1
1
  import { IWeAppData } from '../../weapps-core';
2
2
  import { IBuildContext } from './BuildContext';
3
3
  export declare function generateMpConfig(weapps: IWeAppData[], ctx: IBuildContext): {
4
- appConfig: {
5
- useExtendedLib: {
6
- weui: boolean;
7
- };
8
- };
4
+ appConfig: any;
9
5
  projConfig: any;
10
6
  pageConfigs: {}[];
11
7
  };
8
+ interface ISubpackage {
9
+ root: string;
10
+ pages?: string[];
11
+ plugins?: Record<string, {
12
+ version?: string;
13
+ provider?: string;
14
+ }>;
15
+ }
16
+ export declare function mergeSubPackages(base?: ISubpackage[], extra?: ISubpackage[]): ISubpackage[];
17
+ export {};
12
18
  //# sourceMappingURL=mp_config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mp_config.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/mp_config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAA8B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAY/C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa;;;;;;;;EA+FxE"}
1
+ {"version":3,"file":"mp_config.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/mp_config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAA8B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAW/C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa;;;;EAoGxE;AAyFD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,WAAW,EAAO,EACxB,KAAK,GAAE,WAAW,EAAO,iBAoB1B"}
@@ -33,7 +33,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33
33
  return (mod && mod.__esModule) ? mod : { "default": mod };
34
34
  };
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.generateMpConfig = void 0;
36
+ exports.mergeSubPackages = exports.generateMpConfig = void 0;
37
37
  const path = __importStar(require("path"));
38
38
  const lodash_1 = require("lodash");
39
39
  const mp_1 = require("../config/mp");
@@ -48,7 +48,7 @@ function generateMpConfig(weapps, ctx) {
48
48
  };
49
49
  const { miniprogramPlugins = [] } = ctx;
50
50
  const projConfig = (0, lodash_1.merge)({}, mp_1.defaultProjConfig, {
51
- projectname: 'WeDa-' + ctx.appId,
51
+ projectname: `WeDa-${ctx.appId}`,
52
52
  });
53
53
  const pageConfigs = weapps.map((app) => {
54
54
  var _a;
@@ -78,7 +78,9 @@ function generateMpConfig(weapps, ctx) {
78
78
  (0, lodash_1.merge)(appConfig, appJson);
79
79
  }
80
80
  const _b = weapps[0].appConfig || {}, { tradingCapability } = _b, mainAppConfig = __rest(_b, ["tradingCapability"]);
81
- (0, lodash_1.merge)(appConfig, mainAppConfig, extractPages(weapps, pageConfigs));
81
+ const _c = extractPages(weapps, pageConfigs), { subpackages } = _c, extra = __rest(_c, ["subpackages"]);
82
+ (0, lodash_1.merge)(appConfig, mainAppConfig, extra);
83
+ appConfig.subpackages = mergeSubPackages(appConfig.subpackages, subpackages);
82
84
  if (tradingCapability) {
83
85
  const tradePluginKey = `weda-mini-shop-plugin`;
84
86
  const pluginMeta = {
@@ -155,7 +157,7 @@ function transformDynamicData(originData) {
155
157
  const temp = {};
156
158
  for (const key in originData) {
157
159
  const target = originData[key];
158
- if (target && target.value) {
160
+ if (target === null || target === void 0 ? void 0 : target.value) {
159
161
  temp[key] = target.value;
160
162
  }
161
163
  }
@@ -183,3 +185,22 @@ function parseTabConfig(tabBar, projDir) {
183
185
  return iconPath;
184
186
  }
185
187
  }
188
+ function mergeSubPackages(base = [], extra = []) {
189
+ const baseMap = base.reduce((map, item) => {
190
+ map[item.root] = item;
191
+ return map;
192
+ }, {});
193
+ for (const subpackage of extra) {
194
+ if (!baseMap[subpackage.root]) {
195
+ base.push(subpackage);
196
+ continue;
197
+ }
198
+ const current = baseMap[subpackage.root];
199
+ current.pages = Array.from(new Set([...(current.pages || []), ...(subpackage.pages || [])]));
200
+ if (current.plugins || subpackage.plugins) {
201
+ current.plugins = (0, lodash_1.merge)(current.pplugins, subpackage.plugins);
202
+ }
203
+ }
204
+ return base;
205
+ }
206
+ exports.mergeSubPackages = mergeSubPackages;
@@ -1 +1 @@
1
- {"version":3,"file":"wxml.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/wxml.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,EAEvB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,MAAM,EAAE,MAAM,EACd,cAAc,KAAA,EACd,GAAG,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EACxC,eAAe,KAAA,EACf,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,KAAA,KAAK,IAAI,UA+V7D;AA4BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,eAAoB,UAS/B;AAuBD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,QAAQ,GAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAAO;;EAYlD"}
1
+ {"version":3,"file":"wxml.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/wxml.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,EAEvB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,MAAM,EAAE,MAAM,EACd,cAAc,KAAA,EACd,GAAG,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EACxC,eAAe,KAAA,EACf,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,KAAA,KAAK,IAAI,UAiW7D;AA4BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,eAAoB,UAS/B;AAuBD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,QAAQ,GAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAAO;;EAYlD"}
@@ -216,7 +216,7 @@ function generateWxml(widgets, docTag, wxmlDataPrefix, ctx, usingComponents, nod
216
216
  componentKey === 'gsd-h5-react:Swiper') {
217
217
  node.elements = node.elements.map((item, index) => {
218
218
  var _a, _b;
219
- let _c = item.attributes || {}, { ['wx:for']: wxFor, ['wx:for-index']: wxForIndex, ['wx:key']: wxKey } = _c, itemRestKey = __rest(_c, ['wx:for', 'wx:for-index', 'wx:key']);
219
+ let _c = item.attributes || {}, { ['wx:for']: wxFor, ['wx:for-index']: wxForIndex, ['wx:key']: wxKey, ['wx:if']: wxIf } = _c, itemRestKey = __rest(_c, ['wx:for', 'wx:for-index', 'wx:key', 'wx:if']);
220
220
  if (item.name !== 'swiper-item') {
221
221
  let SwiperItem = {
222
222
  type: 'element',
@@ -226,6 +226,7 @@ function generateWxml(widgets, docTag, wxmlDataPrefix, ctx, usingComponents, nod
226
226
  'wx:for': wxFor,
227
227
  'wx:for-index': wxForIndex,
228
228
  'wx:key': wxKey,
229
+ 'wx:if': wxIf,
229
230
  },
230
231
  elements: [],
231
232
  _order: index || 0,
package/lib/generate.js CHANGED
@@ -15,8 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.handleMpPlugins = void 0;
16
16
  const path_1 = __importDefault(require("path"));
17
17
  const fs_extra_1 = __importDefault(require("fs-extra"));
18
- const lodash_1 = require("lodash");
19
18
  const webpack_1 = require("./builder/service/builder/webpack");
19
+ const mp_config_1 = require("./builder/mp/mp_config");
20
20
  function handleMpPlugins(plugins = [], appBuildDir) {
21
21
  return __awaiter(this, void 0, void 0, function* () {
22
22
  const appBuildMpDir = path_1.default.resolve(appBuildDir, 'dist/mp');
@@ -29,7 +29,7 @@ function handleMpPlugins(plugins = [], appBuildDir) {
29
29
  .forEach((plugin) => {
30
30
  const mpBuildAppJsonPath = path_1.default.resolve(appBuildMpDir, 'app.json');
31
31
  const pluginAppJsonPath = path_1.default.resolve(appBuildNodeModulesDir, plugin.module, 'app.json');
32
- mergeSubPackages(mpBuildAppJsonPath, pluginAppJsonPath);
32
+ mergeSubPackagesApp(mpBuildAppJsonPath, pluginAppJsonPath);
33
33
  buildPkgJson.dependencies[plugin.module] =
34
34
  sourcePkgJson.dependencies[plugin.module];
35
35
  });
@@ -39,28 +39,12 @@ function handleMpPlugins(plugins = [], appBuildDir) {
39
39
  });
40
40
  }
41
41
  exports.handleMpPlugins = handleMpPlugins;
42
- function mergeSubPackages(baseAppJsonPath, mergeAppJsonPath) {
42
+ function mergeSubPackagesApp(baseAppJsonPath, mergeAppJsonPath) {
43
43
  const baseJson = fs_extra_1.default.readJSONSync(baseAppJsonPath);
44
44
  const mergeJson = fs_extra_1.default.readJSONSync(mergeAppJsonPath);
45
45
  if (!mergeJson.subpackages)
46
46
  return;
47
47
  const newJson = Object.assign({}, baseJson);
48
- if (!baseJson.subpackages) {
49
- newJson.subpackages = mergeJson.subpackages;
50
- }
51
- else {
52
- mergeJson.subpackages.forEach((mergeItem) => {
53
- const targetItemIdx = newJson.subpackages.findIndex((item) => {
54
- return item.root === mergeItem.root;
55
- });
56
- if (newJson.subpackages[targetItemIdx]) {
57
- const pages = (0, lodash_1.uniq)([].concat(newJson.subpackages[targetItemIdx].pages, mergeItem.pages));
58
- newJson.subpackages[targetItemIdx].pages = pages;
59
- }
60
- else {
61
- newJson.subpackages.push(mergeItem);
62
- }
63
- });
64
- }
48
+ newJson.subpackages = (0, mp_config_1.mergeSubPackages)(baseJson.subpackages, mergeJson.subpackages);
65
49
  fs_extra_1.default.writeJSONSync(baseAppJsonPath, newJson, { spaces: 2 });
66
50
  }
@@ -1,4 +1,4 @@
1
- export declare type CodeType = 'rematch' | 'rematch-action' | 'computed' | 'general-func' | 'general' | 'lifecycle' | 'config' | 'state' | 'handler-fn' | 'normal-module' | 'app-style' | 'style' | 'theme' | 'lib' | 'index' | 'json' | 'app-config' | 'page-config' | 'page';
1
+ export declare type CodeType = 'rematch' | 'rematch-action' | 'computed' | 'general-func' | 'general' | 'lifecycle' | 'config' | 'state' | 'handler-fn' | 'normal-module' | 'app-style' | 'style' | 'theme' | 'lib' | 'index' | 'renderer' | 'json' | 'app-config' | 'page-config' | 'page';
2
2
  export declare type RematchModule<State> = (args: {
3
3
  sdk: any;
4
4
  history: any;
@@ -1 +1 @@
1
- {"version":3,"file":"code_types.d.ts","sourceRoot":"","sources":["../../../src/weapps-core/types/code_types.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ,GAChB,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,SAAS,GACT,WAAW,GACX,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,eAAe,GACf,WAAW,GACX,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GAGP,MAAM,GACN,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,oBAAY,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;IACxC,GAAG,MAAC;IACJ,OAAO,MAAC;CACT,KAAK;IACJ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,KAAA,KAAK,KAAK,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,CAAC,QAAQ,KAAA,KAAK;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAE,CAAC;IACjE,QAAQ,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAA;KAAE,CAAC;CAC1D,CAAC;AAEF,oBAAY,aAAa,GAAG,CAAC,QAAQ,KAAA,KAAK,iBAAiB,CAAC;AAE5D,oBAAY,eAAe,GAAG,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,CAAC;AAEvD,oBAAY,aAAa,GAAG,GAAG,CAAC;AAEhC,oBAAY,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,IAAI,MAAC;IACL,eAAe,MAAC;IAChB,OAAO,MAAC;IACR,WAAW,MAAC;CACb,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"code_types.d.ts","sourceRoot":"","sources":["../../../src/weapps-core/types/code_types.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ,GAChB,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,SAAS,GACT,WAAW,GACX,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,eAAe,GACf,WAAW,GACX,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,UAAU,GAGV,MAAM,GACN,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,oBAAY,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;IACxC,GAAG,MAAC;IACJ,OAAO,MAAC;CACT,KAAK;IACJ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,KAAA,KAAK,KAAK,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,CAAC,QAAQ,KAAA,KAAK;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAE,CAAC;IACjE,QAAQ,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAA;KAAE,CAAC;CAC1D,CAAC;AAEF,oBAAY,aAAa,GAAG,CAAC,QAAQ,KAAA,KAAK,iBAAiB,CAAC;AAE5D,oBAAY,eAAe,GAAG,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,CAAC;AAEvD,oBAAY,aAAa,GAAG,GAAG,CAAC;AAEhC,oBAAY,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,IAAI,MAAC;IACL,eAAe,MAAC;IAChB,OAAO,MAAC;IACR,WAAW,MAAC;CACb,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC"}
@@ -214,7 +214,14 @@ function translateStyleByHandler(style = {}, handler) {
214
214
  setStyleValue(result, key, value);
215
215
  }
216
216
  else if (value !== undefined && value !== null) {
217
+ try {
218
+
217
219
  setStyleValue(result, key, handler(value));
220
+ }catch(e){
221
+ console.log(style,key,value)
222
+ console.log(e)
223
+ throw e
224
+ }
218
225
  }
219
226
  return result;
220
227
  }, {});
@@ -257,6 +264,7 @@ function toREM(cssLen) {
257
264
  return calPxToREM(cssLen);
258
265
  }
259
266
  else {
267
+ console.log(cssLen)
260
268
  throw new Error('cssLen type error');
261
269
  }
262
270
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/framework-plugin-low-code",
3
- "version": "0.7.4",
3
+ "version": "0.7.7",
4
4
  "description": "云开发 Tencent CloudBase Framework Low Code Plugin,将低码配置生成完整项目并一键部署云开发资源。",
5
5
  "author": "yhsunshining@gmail.com",
6
6
  "homepage": "https://github.com/TencentCloudBase/cloudbase-framework#readme",
@@ -30,6 +30,14 @@ function createGlboalApi() {
30
30
  getConfig: function () {
31
31
  return <%= appConfig %>;
32
32
  },
33
+ resolveStaticResourceUrl(staticUrl) {
34
+ if (/^\//.test(staticUrl)) {
35
+ const domain = globalAPI?.__internal__?.getConfig?.()?.staticResourceDomain || globalAPI?.domain || ''
36
+ const url = `https://${domain}${staticUrl}`;
37
+ return url;
38
+ }
39
+ return staticUrl;
40
+ }
33
41
  },
34
42
  dataSources: DS_SDK,
35
43
  pages: {},
@@ -34,6 +34,14 @@ function createGlboalApi() {
34
34
  getConfig: function () {
35
35
  return <%= appConfig %>;
36
36
  },
37
+ resolveStaticResourceUrl(staticUrl) {
38
+ if (/^\//.test(staticUrl) && !window._isPrivate) {
39
+ const domain = globalAPI?.__internal__?.getConfig?.()?.staticResourceDomain || globalAPI?.domain || ''
40
+ const url = `https://${domain}${staticUrl}`;
41
+ return url;
42
+ }
43
+ return staticUrl;
44
+ }
37
45
  },
38
46
  formActions: {},
39
47
  pages: {},
@@ -141,12 +141,8 @@ export function resolveComponentProps(props, isPlainProps) {
141
141
  }
142
142
 
143
143
  export function getStaticResourceAttribute(staticUrl) {
144
- if (/^\//.test(staticUrl)) {
145
- const { domain = '' } = window.app || {};
146
- const url = `https://${domain}${staticUrl}`;
147
- return url;
148
- }
149
- return staticUrl;
144
+ const { __internal__ = {} } = window.app || {};
145
+ return __internal__?.resolveStaticResourceUrl?.(staticUrl) || staticUrl
150
146
  }
151
147
 
152
148
  export function findLoginPage(app = window.app) {
@@ -157,33 +157,38 @@ export default function App() {
157
157
  __html: `<%= pageStyleText %>`,
158
158
  }}
159
159
  />
160
- {weDaHasLogin && !isPure && (
161
- <AppRender pageListenerInstances={pageListenerInstances}
162
- virtualFields={virtualFields}
163
- componentSchema={componentSchema}
164
- context={dataContextRef.current}
165
- /**
166
- * 更新数据容器的上下文的方法
167
- * 会传递到事件emit的地方,将从组件获取到的数据data赋值给上下文
168
- * 当组件卸载时,传过来的data为undefined即可
169
- * {
170
- * id1: [{...}],
171
- * id2: {...},
172
- * id3: undefined,
173
- * id4: null,
174
- * ...
175
- * }
176
- * @param id
177
- * @param data
178
- */
179
- updateContext={(id, data) => {
180
- if (id) {
181
- dataContextRef.current[id] = { data };
182
- // console.log('111', context[id])
183
- }
184
- }}
185
- />
186
- )}
160
+ {weDaHasLogin &&
161
+ !isPure &&
162
+ (PageLifeCycle.onPageRender ? (
163
+ PageLifeCycle.onPageRender()
164
+ ) : (
165
+ <AppRender
166
+ pageListenerInstances={pageListenerInstances}
167
+ virtualFields={virtualFields}
168
+ componentSchema={componentSchema}
169
+ context={dataContextRef.current}
170
+ /**
171
+ * 更新数据容器的上下文的方法
172
+ * 会传递到事件emit的地方,将从组件获取到的数据data赋值给上下文
173
+ * 当组件卸载时,传过来的data为undefined即可
174
+ * {
175
+ * id1: [{...}],
176
+ * id2: {...},
177
+ * id3: undefined,
178
+ * id4: null,
179
+ * ...
180
+ * }
181
+ * @param id
182
+ * @param data
183
+ */
184
+ updateContext={(id, data) => {
185
+ if (id) {
186
+ dataContextRef.current[id] = { data };
187
+ // console.log('111', context[id])
188
+ }
189
+ }}
190
+ />
191
+ ))}
187
192
  </div>
188
193
  );
189
194
  }
@@ -16,7 +16,6 @@ module.exports = function (options) {
16
16
  context,
17
17
  entry,
18
18
  output,
19
- mode,
20
19
  watch,
21
20
  externals,
22
21
  resolveModules,
@@ -27,7 +26,6 @@ module.exports = function (options) {
27
26
  definePlugin = {},
28
27
  devtool = false,
29
28
  } = options;
30
- const isDevelopment = mode !== 'production';
31
29
 
32
30
  const babelLoader = {
33
31
  loader: 'babel-loader',
@@ -139,22 +137,16 @@ module.exports = function (options) {
139
137
  },
140
138
  ],
141
139
  }),
140
+ new webpack.HashedModuleIdsPlugin({
141
+ hashFunction: 'sha256',
142
+ hashDigest: 'hex',
143
+ hashDigestLength: 20,
144
+ }),
145
+ new webpack.EnvironmentPlugin({
146
+ SSR: false,
147
+ WEBPACK_ENV: 'production',
148
+ }),
142
149
  ];
143
- if (isDevelopment) {
144
- plugins.concat([new HardSourceWebpackPlugin()]);
145
- } else {
146
- plugins = plugins.concat([
147
- new webpack.HashedModuleIdsPlugin({
148
- hashFunction: 'sha256',
149
- hashDigest: 'hex',
150
- hashDigestLength: 20,
151
- }),
152
- new webpack.EnvironmentPlugin({
153
- SSR: false,
154
- WEBPACK_ENV: 'production',
155
- }),
156
- ]);
157
- }
158
150
 
159
151
  const cssLoaders = [
160
152
  MiniCssExtractPlugin.loader,
@@ -188,7 +180,10 @@ module.exports = function (options) {
188
180
  return {
189
181
  context,
190
182
  entry,
191
- mode,
183
+ /**
184
+ * 只要是构建都开启 production 以使用精简
185
+ */
186
+ mode: 'production',
192
187
  watch,
193
188
  output,
194
189
  externals,
@@ -266,12 +261,12 @@ module.exports = function (options) {
266
261
  concatenateModules: true,
267
262
  noEmitOnErrors: true,
268
263
  splitChunks: {
269
- maxSize: isDevelopment ? undefined : 3000000,
264
+ maxSize: 3000000,
270
265
  cacheGroups: {
271
266
  base: {
272
267
  test: /(react|react-dom|react-router|react-router-dom|mobx|mobx-react-lite|@cloudbase\/js-sdk)/,
273
268
  chunks: 'all',
274
- minSize: isDevelopment ? undefined : 500000,
269
+ minSize: 500000,
275
270
  priority: 100, // 优先级
276
271
  },
277
272
  utils: {
@@ -291,25 +286,17 @@ module.exports = function (options) {
291
286
  },
292
287
  },
293
288
  },
294
- ...(isDevelopment
295
- ? {
296
- minimize: false,
297
- removeAvailableModules: false,
298
- removeEmptyChunks: true,
299
- }
300
- : {
301
- minimizer: [
302
- new TerserPlugin({
303
- test: /\.js(\?.*)?$/i,
304
- cache: false,
305
- parallel: true,
306
- sourceMap: false,
307
- terserOptions: {
308
- safari10: true,
309
- },
310
- }),
311
- ],
312
- }),
289
+ minimizer: [
290
+ new TerserPlugin({
291
+ test: /\.js(\?.*)?$/i,
292
+ cache: false,
293
+ parallel: true,
294
+ sourceMap: false,
295
+ terserOptions: {
296
+ safari10: true,
297
+ },
298
+ }),
299
+ ],
313
300
  },
314
301
  };
315
302
  };