@cloudbase/lowcode-builder 0.1.26 → 1.0.0
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.
- package/lib/builder/core/index.d.ts +1 -3
- package/lib/builder/core/index.js +42 -52
- package/lib/builder/h5/compile.d.ts +1 -1
- package/lib/builder/h5/compile.js +59 -20
- package/lib/builder/h5/copy.js +2 -4
- package/lib/builder/h5/generate.js +3 -3
- package/lib/builder/h5/index.d.ts +5 -4
- package/lib/builder/h5/index.js +25 -14
- package/lib/builder/h5/material.js +6 -11
- package/lib/builder/h5/npm.js +6 -5
- package/lib/builder/mp/index.js +38 -49
- package/lib/builder/mp/materials.js +25 -18
- package/lib/builder/mp/mixMode.js +7 -10
- package/lib/builder/mp/mp_config.js +2 -3
- package/lib/builder/mp/wxml.js +1 -1
- package/lib/builder/service/webpack.d.ts +7 -1
- package/lib/builder/service/webpack.js +97 -24
- package/lib/builder/types/common.d.ts +1 -1
- package/lib/builder/types/common.js +2 -1
- package/lib/builder/util/common.js +1 -4
- package/lib/builder/util/generateFiles.js +12 -10
- package/lib/builder/util/mp.js +2 -8
- package/lib/builder.web.js +71 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +6 -0
- package/lib/types.d.ts +1 -0
- package/lib/types.js +11 -0
- package/package.json +3 -8
- package/template/html/index.html.ejs +59 -29
- package/template/mp/common/weapp-page.js +23 -1
- package/template/mp/package.json +1 -1
- package/template/mp/page/index.js +2 -1
- package/template/package.json +5 -2
- package/template/webpack/getCSSModuleLocalIdent.js +28 -0
- package/template/webpack/web.prod.js +112 -103
- package/template/src/app/common.js +0 -13
- package/template/src/app/global-api.js +0 -99
- package/template/src/app/handlers.js +0 -13
- package/template/src/app/material-actions.js +0 -16
- package/template/src/app/mountAppApis.js +0 -25
- package/template/src/app/mountMpApis.js +0 -4
- package/template/src/datasources/config.js.tpl +0 -23
- package/template/src/datasources/dataset-profiles.js.tpl +0 -5
- package/template/src/datasources/datasource-profiles.js.tpl +0 -4
- package/template/src/datasources/index.js +0 -31
- package/template/src/handlers/FieldMiddleware/renderer.jsx +0 -331
- package/template/src/handlers/HotAreas.js +0 -36
- package/template/src/handlers/PositionHandler.jsx +0 -8
- package/template/src/handlers/actionHandler/utils.js +0 -149
- package/template/src/handlers/componentEventActionEmitter.js +0 -29
- package/template/src/handlers/componentNodeMap.js +0 -24
- package/template/src/handlers/controller.js +0 -5
- package/template/src/handlers/emitComponentEvent.js +0 -8
- package/template/src/handlers/eventListener/componentEventListener.js +0 -15
- package/template/src/handlers/eventListener/hotAreaEventListener.js +0 -32
- package/template/src/handlers/eventListener/index.js +0 -29
- package/template/src/handlers/eventListener/pageEventListener.js +0 -11
- package/template/src/handlers/eventListener/types.js +0 -32
- package/template/src/handlers/hooks/index.js +0 -14
- package/template/src/handlers/initWebEnv.js +0 -4
- package/template/src/handlers/injectStyle.js +0 -14
- package/template/src/handlers/instanceMap.js +0 -39
- package/template/src/handlers/lifecycle.js +0 -232
- package/template/src/handlers/render.jsx +0 -131
- package/template/src/handlers/utils/common.js +0 -151
- package/template/src/handlers/utils/eventProxy.js +0 -64
- package/template/src/handlers/utils/events.js +0 -8
- package/template/src/handlers/utils/index.js +0 -4
- package/template/src/handlers/utils/widgets.js +0 -320
- package/template/src/index.jsx +0 -142
- package/template/src/index.less +0 -119
- package/template/src/libraries/default-lib/wx_yypt_report_v2.js +0 -441
- package/template/src/pages/app.tpl +0 -124
- package/template/src/router/index.tpl +0 -28
- package/template/src/store/computed.js +0 -11
- package/template/src/store/index.js +0 -40
- package/template/src/utils/ScanCodeComponent.js +0 -396
- package/template/src/utils/date.js +0 -324
- package/template/src/utils/history.js +0 -72
- package/template/src/utils/index.js +0 -67
- package/template/src/utils/kbone.js +0 -18
- package/template/src/utils/monitor-jssdk.min.js +0 -763
- package/template/src/utils/request.js +0 -5
- package/template/src/utils/scan-code-action.js +0 -27
|
@@ -3,22 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.downloadAssets = exports.generateWebpackWebDevServerFile = exports.getMaterialNodeModulesPathList = exports.installDependencies = exports.downloadDependencies = exports.downloadAndInstallDependencies = exports.getAllPageMpEntryPath = exports.getWebpackMpBuildParams = exports.getWebpackWebBuildParams = exports.getMpAllRouterConfig = exports.getPageName = exports.getHomePageInstance = exports.getMainAppDataByList = exports.generateMpJsonConfigFile = exports.generateKboneAppConfig = exports.generateKbonePageConfig = exports.downloadAndWriteTabBarIcon = exports.generateKboneTabBarConfig = exports.generateAppConfig = exports.generateWebpackWebBuildParamsFile = exports.fixAppJson = void 0;
|
|
6
|
+
exports.downloadAssets = exports.generateWebpackWebDevServerFile = exports.getMaterialNodeModulesPathList = exports.installDependencies = exports.downloadDependencies = exports.downloadAndInstallDependencies = exports.getAllPageMpEntryPath = exports.getWebpackMpBuildParams = exports.getWebpackWebBuildParams = exports.getMpAllRouterConfig = exports.getPageName = exports.getHomePageInstance = exports.getMainAppDataByList = exports.generateMpJsonConfigFile = exports.generateKboneAppConfig = exports.generateKbonePageConfig = exports.downloadAndWriteTabBarIcon = exports.generateKboneTabBarConfig = exports.generateAppConfig = exports.generateWebpackWebBuildParamsFile = exports.fixAppJson = exports.PERSISTENT_DEPENDIENCES_MAP = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
-
const
|
|
9
|
+
const lodash_1 = require("lodash");
|
|
10
10
|
const util_1 = require("../util");
|
|
11
11
|
const axios_1 = __importDefault(require("axios"));
|
|
12
12
|
const compressing_1 = __importDefault(require("compressing"));
|
|
13
13
|
const cross_spawn_1 = __importDefault(require("cross-spawn"));
|
|
14
14
|
const weapps_core_1 = require("@cloudbase/lowcode-generator/lib/weapps-core");
|
|
15
15
|
const config_1 = require("../config");
|
|
16
|
-
// import { getPluginKboneSubpackage } from './plugin';
|
|
17
16
|
const common_1 = require("../types/common");
|
|
18
|
-
const config_2 = require("../config");
|
|
19
17
|
const common_2 = require("../util/common");
|
|
20
18
|
const types_1 = require("../../types");
|
|
21
19
|
const generateFiles_1 = require("../util/generateFiles");
|
|
20
|
+
exports.PERSISTENT_DEPENDIENCES_MAP = {};
|
|
22
21
|
async function fixAppJson(appBuildDir) {
|
|
23
22
|
const appJsonPath = path_1.default.resolve(appBuildDir, 'dist/mp/app.json');
|
|
24
23
|
if (!fs_extra_1.default.existsSync(appJsonPath)) {
|
|
@@ -139,7 +138,6 @@ function generateKbonePageConfig(mpConfig, mainAppData, subAppDataList = []) {
|
|
|
139
138
|
config_1.KBONE_PAGE_KEYS.forEach((key) => {
|
|
140
139
|
if (item.data[key]) {
|
|
141
140
|
mpConfig.pages[pageId][key] = item.data[key];
|
|
142
|
-
delete item.data[key];
|
|
143
141
|
}
|
|
144
142
|
});
|
|
145
143
|
// extra 配置
|
|
@@ -284,10 +282,13 @@ function getWebpackWebBuildParams(appId, appBuildDir, publicPath = '/', mode = c
|
|
|
284
282
|
},
|
|
285
283
|
htmlTemplatePath: path_1.default.resolve(appBuildDir, './index.html'),
|
|
286
284
|
externals: {
|
|
285
|
+
react: 'window.React',
|
|
286
|
+
'react-dom': 'window.ReactDOM',
|
|
287
287
|
mobx: 'window.mobx',
|
|
288
288
|
'@cloudbase/js-sdk': 'window.cloudbase',
|
|
289
289
|
'@cloudbase/weda-cloud-sdk/dist/h5': 'window.CloudSDK',
|
|
290
290
|
'@zxing/library': 'window.ZXing',
|
|
291
|
+
'@cloudbase/lowcode-render': 'window["weda-render"]',
|
|
291
292
|
},
|
|
292
293
|
resolveModules: [
|
|
293
294
|
// path.resolve(appBuildDir, 'node_modules'),
|
|
@@ -300,6 +301,11 @@ function getWebpackWebBuildParams(appId, appBuildDir, publicPath = '/', mode = c
|
|
|
300
301
|
'process.env.isAdminPortal': (0, common_1.buildAsAdminPortalByBuildType)(buildTypeList),
|
|
301
302
|
...extraDefine,
|
|
302
303
|
},
|
|
304
|
+
devtool: ['app-nvzcvt10', 'app-msa2ihs9'].includes(appId)
|
|
305
|
+
? 'source-map'
|
|
306
|
+
: mode !== common_1.WebpackModeType.PRODUCTION
|
|
307
|
+
? 'eval'
|
|
308
|
+
: false,
|
|
303
309
|
};
|
|
304
310
|
}
|
|
305
311
|
exports.getWebpackWebBuildParams = getWebpackWebBuildParams;
|
|
@@ -314,7 +320,8 @@ function getWebpackMpBuildParams(appBuildDir, materialsDir, dependencies = [], n
|
|
|
314
320
|
appBuildDir,
|
|
315
321
|
path_1.default.resolve(appBuildDir, 'node_modules'),
|
|
316
322
|
path_1.default.resolve(appBuildDir, 'src'),
|
|
317
|
-
...getMaterialNodeModulesPathList(dependencies, materialsDir),
|
|
323
|
+
...getMaterialNodeModulesPathList(dependencies, materialsDir, appBuildDir),
|
|
324
|
+
'node_modules',
|
|
318
325
|
],
|
|
319
326
|
watchOptions: {
|
|
320
327
|
ignored: /node_modules/,
|
|
@@ -350,23 +357,53 @@ async function downloadAndInstallDependencies(dependencies = [], materialsDir, i
|
|
|
350
357
|
const { name, version, srcZipUrl } = item;
|
|
351
358
|
const materialNameVersion = `${name}@${version}`;
|
|
352
359
|
const targetDir = path_1.default.join(materialsDir, materialNameVersion);
|
|
353
|
-
// 如果需要下载素材
|
|
354
|
-
if (!(await fs_extra_1.default.pathExists(targetDir))) {
|
|
355
|
-
await downloadDependencies(targetDir, item.srcZipUrl);
|
|
356
|
-
await installDependencies(targetDir, {
|
|
357
|
-
...installOptions,
|
|
358
|
-
isDependence: true,
|
|
359
|
-
ignoreInstall: (0, common_2.isOfficialComponentLib)(name, version),
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
// 同步依赖
|
|
363
|
-
const packageJson = await fs_extra_1.default.readJson(path_1.default.join(targetDir, 'package.json'));
|
|
364
|
-
item.dependencies = packageJson.dependencies || {};
|
|
365
360
|
// 当前本地目录是素材库的时候,直接用本地的
|
|
366
361
|
if (localPkg && localPkg.name === name && localPkg.version === version) {
|
|
367
362
|
console.log('当前本地目录是素材库的时候,无需安装', materialNameVersion);
|
|
368
363
|
return;
|
|
369
364
|
}
|
|
365
|
+
// 如果需要下载素材
|
|
366
|
+
if (!(await fs_extra_1.default.pathExists(targetDir))) {
|
|
367
|
+
const matched = srcZipUrl.match(/\/(cg-.*?)\//);
|
|
368
|
+
const { appBuildDir } = (0, util_1.getCompileDirs)('app');
|
|
369
|
+
if ((matched === null || matched === void 0 ? void 0 : matched[1]) && fs_extra_1.default.existsSync(path_1.default.resolve(appBuildDir, `.component_cache/web/${matched[1]}@${version}`))) {
|
|
370
|
+
console.log(`link ${name}@${version} ...`);
|
|
371
|
+
await fs_extra_1.default.symlink(path_1.default.resolve(appBuildDir, `.component_cache/web/${matched[1]}@${version}`), targetDir, 'dir');
|
|
372
|
+
// await fs.copy(
|
|
373
|
+
// path.resolve(
|
|
374
|
+
// appBuildDir,
|
|
375
|
+
// `.component_cache/web/${matched[1]}@${version}`
|
|
376
|
+
// ),
|
|
377
|
+
// targetDir,
|
|
378
|
+
// {
|
|
379
|
+
// filter: function (src, dest) {
|
|
380
|
+
// const path = src.split('/');
|
|
381
|
+
// return !junk.is(path[path.length - 1]);
|
|
382
|
+
// },
|
|
383
|
+
// }
|
|
384
|
+
// );
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
console.log(`下载${name}@${version} ...`);
|
|
388
|
+
await downloadDependencies(targetDir, srcZipUrl);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
console.log(`处理${name}@${version}依赖 ...`);
|
|
392
|
+
await installDependencies(targetDir, {
|
|
393
|
+
...installOptions,
|
|
394
|
+
isDependence: true,
|
|
395
|
+
ignoreInstall: (0, common_2.isOfficialComponentLib)(name, version) || (installOptions === null || installOptions === void 0 ? void 0 : installOptions.ignoreInstall),
|
|
396
|
+
dependenceMeta: {
|
|
397
|
+
name,
|
|
398
|
+
version,
|
|
399
|
+
downloadUrl: srcZipUrl,
|
|
400
|
+
},
|
|
401
|
+
});
|
|
402
|
+
// 同步依赖
|
|
403
|
+
// const packageJson = await fs.readJson(
|
|
404
|
+
// path.join(targetDir, 'package.json')
|
|
405
|
+
// );
|
|
406
|
+
// item.dependencies = packageJson.dependencies || {};
|
|
370
407
|
}));
|
|
371
408
|
}
|
|
372
409
|
exports.downloadAndInstallDependencies = downloadAndInstallDependencies;
|
|
@@ -382,7 +419,27 @@ async function downloadDependencies(targetDir, srcZipUrl) {
|
|
|
382
419
|
// proxy: false
|
|
383
420
|
});
|
|
384
421
|
await fs_extra_1.default.ensureDir(targetDir);
|
|
422
|
+
// let download = spawn(
|
|
423
|
+
// 'curl',
|
|
424
|
+
// ['-fsSL', srcZipUrl, '-o', `${targetDir}.zip`],
|
|
425
|
+
// {
|
|
426
|
+
// stdio: 'inherit',
|
|
427
|
+
// }
|
|
428
|
+
// );
|
|
429
|
+
// await promisifyProcess(download);
|
|
430
|
+
const tag = `uncompress ${srcZipUrl}`;
|
|
431
|
+
console.time(tag);
|
|
385
432
|
await compressing_1.default.zip.uncompress(response.data, targetDir);
|
|
433
|
+
// let unzip = spawn(
|
|
434
|
+
// 'unzip',
|
|
435
|
+
// ['-q', '-o', `${targetDir}.zip`, '-d', targetDir],
|
|
436
|
+
// {
|
|
437
|
+
// stdio: 'inherit',
|
|
438
|
+
// }
|
|
439
|
+
// );
|
|
440
|
+
// await promisifyProcess(unzip);
|
|
441
|
+
// await fs.remove(`${targetDir}.zip`);
|
|
442
|
+
console.timeEnd(tag);
|
|
386
443
|
}
|
|
387
444
|
catch (e) {
|
|
388
445
|
console.error(`Fail to download weapps material package ${srcZipUrl}`, e);
|
|
@@ -417,8 +474,15 @@ async function installDependencies(targetDir, options = {}) {
|
|
|
417
474
|
console.time(operationTag);
|
|
418
475
|
const registry = `--registry=${config_1.npmRegistry}`;
|
|
419
476
|
const npmOptions = ['--prefer-offline', '--no-audit', '--progress=false', registry];
|
|
420
|
-
if (options === null || options === void 0 ? void 0 : options.
|
|
477
|
+
if (options === null || options === void 0 ? void 0 : options.dependenceMeta) {
|
|
421
478
|
npmOptions.push('--production');
|
|
479
|
+
const { name, version } = options.dependenceMeta;
|
|
480
|
+
if (!fs_extra_1.default.existsSync(path_1.default.join(targetDir, 'node_modules'))) {
|
|
481
|
+
exports.PERSISTENT_DEPENDIENCES_MAP[`${name}@${version}`] = {
|
|
482
|
+
...options === null || options === void 0 ? void 0 : options.dependenceMeta,
|
|
483
|
+
source: targetDir,
|
|
484
|
+
};
|
|
485
|
+
}
|
|
422
486
|
}
|
|
423
487
|
let installProcess;
|
|
424
488
|
// 云端构建, 选用 npm
|
|
@@ -436,6 +500,11 @@ async function installDependencies(targetDir, options = {}) {
|
|
|
436
500
|
installProcess = cross_spawn_1.default.sync('npm', ['install', packageName, ...npmOptions], installlProcessOptions);
|
|
437
501
|
}
|
|
438
502
|
fixNodeModules(targetDir);
|
|
503
|
+
try {
|
|
504
|
+
await fs_extra_1.default.remove(path_1.default.join(path_1.default.join(targetDir, 'package-lock.json')));
|
|
505
|
+
await fs_extra_1.default.remove(path_1.default.join(path_1.default.join(targetDir, 'yarn.lock')));
|
|
506
|
+
}
|
|
507
|
+
catch (e) { }
|
|
439
508
|
console.timeEnd(operationTag);
|
|
440
509
|
}
|
|
441
510
|
exports.installDependencies = installDependencies;
|
|
@@ -450,25 +519,29 @@ function fixNodeModules(projDir) {
|
|
|
450
519
|
}
|
|
451
520
|
}
|
|
452
521
|
}
|
|
453
|
-
function getMaterialNodeModulesPathList(dependencies = [], materialsDir) {
|
|
522
|
+
function getMaterialNodeModulesPathList(dependencies = [], materialsDir, base) {
|
|
454
523
|
const localPkg = (0, util_1.getCurrentPackageJson)();
|
|
455
524
|
return dependencies.map(({ name, version }) => {
|
|
456
525
|
const nameVersion = `${name}@${version}`;
|
|
526
|
+
let target = '';
|
|
457
527
|
if (localPkg && localPkg.name === name && localPkg.version === version) {
|
|
458
528
|
console.log('当前本地目录是素材库的时候,直接使用当前目录的 node_modules', nameVersion);
|
|
459
|
-
|
|
529
|
+
target = path_1.default.join(process.cwd(), 'node_modules');
|
|
530
|
+
}
|
|
531
|
+
else {
|
|
532
|
+
target = path_1.default.join(materialsDir, nameVersion, 'node_modules');
|
|
460
533
|
}
|
|
461
|
-
return path_1.default.
|
|
534
|
+
return base ? path_1.default.relative(base, target) : target;
|
|
462
535
|
});
|
|
463
536
|
}
|
|
464
537
|
exports.getMaterialNodeModulesPathList = getMaterialNodeModulesPathList;
|
|
465
538
|
// 生成devServer 核心依赖
|
|
466
539
|
async function generateWebpackWebDevServerFile({ appBuildDir, buildTypeList }) {
|
|
467
540
|
const dest = path_1.default.resolve(appBuildDir, `./webpack/devServer.js`);
|
|
468
|
-
const template = await fs_extra_1.default.readFile(path_1.default.resolve(
|
|
541
|
+
const template = await fs_extra_1.default.readFile(path_1.default.resolve(config_1.appTemplateDir, './webpack/devServer.js'), {
|
|
469
542
|
encoding: 'utf8',
|
|
470
543
|
});
|
|
471
|
-
const jsContent = (0,
|
|
544
|
+
const jsContent = (0, lodash_1.template)(template, {
|
|
472
545
|
interpolate: /<%=([\s\S]+?)%>/g,
|
|
473
546
|
})({
|
|
474
547
|
isApp: buildTypeList.includes(common_1.BuildType.APP),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BuildType, GenerateMpType, WebpackModeType, WebpackBuildCallBack, IPackageJson, buildAsWebByBuildType, buildAsAdminPortalByBuildType, IAppUsedComp, IUsedComps, ISyncProp, IComponentInputProps, IFileCodeMap, } from '@cloudbase/lowcode-generator/lib/generator/types/common';
|
|
1
|
+
export { BuildType, GenerateMpType, WebpackModeType, WebpackBuildCallBack, IPackageJson, buildAsWebByBuildType, buildAsAdminPortalByBuildType, buildAsXPageByBuildType, IAppUsedComp, IUsedComps, ISyncProp, IComponentInputProps, IFileCodeMap, } from '@cloudbase/lowcode-generator/lib/generator/types/common';
|
|
2
2
|
import { IComponentMeta, ICompositedComponent } from '@cloudbase/lowcode-generator/lib/weapps-core';
|
|
3
3
|
export declare type IComponentsInfoMap = {
|
|
4
4
|
[componentSourceKey: string]: ({
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildAsAdminPortalByBuildType = exports.buildAsWebByBuildType = exports.WebpackModeType = exports.GenerateMpType = exports.BuildType = void 0;
|
|
3
|
+
exports.buildAsXPageByBuildType = exports.buildAsAdminPortalByBuildType = exports.buildAsWebByBuildType = exports.WebpackModeType = exports.GenerateMpType = exports.BuildType = void 0;
|
|
4
4
|
var common_1 = require("@cloudbase/lowcode-generator/lib/generator/types/common");
|
|
5
5
|
Object.defineProperty(exports, "BuildType", { enumerable: true, get: function () { return common_1.BuildType; } });
|
|
6
6
|
Object.defineProperty(exports, "GenerateMpType", { enumerable: true, get: function () { return common_1.GenerateMpType; } });
|
|
7
7
|
Object.defineProperty(exports, "WebpackModeType", { enumerable: true, get: function () { return common_1.WebpackModeType; } });
|
|
8
8
|
Object.defineProperty(exports, "buildAsWebByBuildType", { enumerable: true, get: function () { return common_1.buildAsWebByBuildType; } });
|
|
9
9
|
Object.defineProperty(exports, "buildAsAdminPortalByBuildType", { enumerable: true, get: function () { return common_1.buildAsAdminPortalByBuildType; } });
|
|
10
|
+
Object.defineProperty(exports, "buildAsXPageByBuildType", { enumerable: true, get: function () { return common_1.buildAsXPageByBuildType; } });
|
|
@@ -222,11 +222,8 @@ function readComponentLibMata(libDir) {
|
|
|
222
222
|
}
|
|
223
223
|
exports.readComponentLibMata = readComponentLibMata;
|
|
224
224
|
const _OFFICIAL_COMPONENT_LIB = {
|
|
225
|
-
'gsd-h5-react': ['
|
|
225
|
+
'gsd-h5-react': ['*'],
|
|
226
226
|
CLOUDBASE_BUSSINESS: ['1627377179261'],
|
|
227
|
-
crm_basis: ['*', '1629778630449'],
|
|
228
|
-
tea_basis: ['*', '1629209320310'],
|
|
229
|
-
tea_shop: ['*'],
|
|
230
227
|
};
|
|
231
228
|
function isOfficialComponentLib(name, version) {
|
|
232
229
|
var _a, _b;
|
|
@@ -25,7 +25,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
25
25
|
exports.strToBuf = exports.fileToZip = exports.getFiles = exports.copyRecursiveSync = exports.copyFileSync = exports.copy = exports.copyFiles = exports.cleanDir = exports.removeFile = exports.writeFile = void 0;
|
|
26
26
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
27
27
|
const path_1 = __importDefault(require("path"));
|
|
28
|
-
const
|
|
28
|
+
const lodash_1 = require("lodash");
|
|
29
29
|
const junk = __importStar(require("../util/junk"));
|
|
30
30
|
const glob_1 = __importDefault(require("glob"));
|
|
31
31
|
const jszip_1 = __importDefault(require("jszip"));
|
|
@@ -41,7 +41,7 @@ async function generateFiles(appFileData, srcDir, dstDir, ctx) {
|
|
|
41
41
|
const tplStr = await fs_extra_1.default.readFile(path_1.default.join(srcDir, srcFileName), {
|
|
42
42
|
encoding: 'utf8',
|
|
43
43
|
});
|
|
44
|
-
let generatedCode = (0,
|
|
44
|
+
let generatedCode = (0, lodash_1.template)(tplStr, { interpolate: /<%=([\s\S]+?)%>/ })(appFileData[file]);
|
|
45
45
|
// 混合模式下,引用公共路径要多增加一层,并加多一层命名
|
|
46
46
|
// 混合子包直接在对应目录上生成,而不采用替换的方式 @royhyang
|
|
47
47
|
// if (ctx?.isMixMode && ctx?.rootPath) {
|
|
@@ -75,7 +75,7 @@ async function writeFile(outFile, content) {
|
|
|
75
75
|
}
|
|
76
76
|
exports.writeFile = writeFile;
|
|
77
77
|
function removeFile(file) {
|
|
78
|
-
console.log(
|
|
78
|
+
console.log(`Removing ${file}`);
|
|
79
79
|
Object.keys(generatedFileContents).map((cachedFile) => {
|
|
80
80
|
if (cachedFile.indexOf(file) === 0) {
|
|
81
81
|
delete generatedFileContents[cachedFile];
|
|
@@ -145,7 +145,7 @@ exports.copyFileSync = copyFileSync;
|
|
|
145
145
|
*/
|
|
146
146
|
const copyRecursiveSync = function (src, dest, options) {
|
|
147
147
|
const exists = fs_extra_1.default.existsSync(src);
|
|
148
|
-
if (!exists || (options
|
|
148
|
+
if (!exists || ((options === null || options === void 0 ? void 0 : options.filter) && !options.filter(src, dest))) {
|
|
149
149
|
return;
|
|
150
150
|
}
|
|
151
151
|
const stats = fs_extra_1.default.statSync(src);
|
|
@@ -155,7 +155,7 @@ const copyRecursiveSync = function (src, dest, options) {
|
|
|
155
155
|
}
|
|
156
156
|
if (isDirectory) {
|
|
157
157
|
const files = fs_extra_1.default.readdirSync(src);
|
|
158
|
-
files.forEach(
|
|
158
|
+
files.forEach((childItemName) => {
|
|
159
159
|
(0, exports.copyRecursiveSync)(path_1.default.join(src, childItemName), path_1.default.join(dest, childItemName), options);
|
|
160
160
|
});
|
|
161
161
|
}
|
|
@@ -171,7 +171,7 @@ exports.copyRecursiveSync = copyRecursiveSync;
|
|
|
171
171
|
* @returns
|
|
172
172
|
*/
|
|
173
173
|
function mkDirByPathSync(targetDir, { isRelativeToScript = false } = {}) {
|
|
174
|
-
const sep = path_1.default
|
|
174
|
+
const { sep } = path_1.default;
|
|
175
175
|
const initDir = path_1.default.isAbsolute(targetDir) ? sep : '';
|
|
176
176
|
const baseDir = isRelativeToScript ? __dirname : '.';
|
|
177
177
|
return targetDir.split(sep).reduce((parentDir, childDir) => {
|
|
@@ -180,15 +180,17 @@ function mkDirByPathSync(targetDir, { isRelativeToScript = false } = {}) {
|
|
|
180
180
|
fs_extra_1.default.mkdirSync(curDir);
|
|
181
181
|
}
|
|
182
182
|
catch (err) {
|
|
183
|
-
if (err.code === 'EEXIST') {
|
|
183
|
+
if (err.code === 'EEXIST') {
|
|
184
|
+
// curDir already exists!
|
|
184
185
|
return curDir;
|
|
185
186
|
}
|
|
186
187
|
// To avoid `EISDIR` error on Mac and `EACCES`-->`ENOENT` and `EPERM` on Windows.
|
|
187
|
-
if (err.code === 'ENOENT') {
|
|
188
|
+
if (err.code === 'ENOENT') {
|
|
189
|
+
// Throw the original parentDir error on curDir `ENOENT` failure.
|
|
188
190
|
throw new Error(`EACCES: permission denied, mkdir '${parentDir}'`);
|
|
189
191
|
}
|
|
190
192
|
const caughtErr = ['EACCES', 'EPERM', 'EISDIR'].indexOf(err.code) > -1;
|
|
191
|
-
if (!caughtErr || caughtErr && curDir === path_1.default.resolve(targetDir)) {
|
|
193
|
+
if (!caughtErr || (caughtErr && curDir === path_1.default.resolve(targetDir))) {
|
|
192
194
|
throw err; // Throw if it's just the last created dir.
|
|
193
195
|
}
|
|
194
196
|
}
|
|
@@ -231,7 +233,7 @@ exports.getFiles = getFiles;
|
|
|
231
233
|
* @returns
|
|
232
234
|
*/
|
|
233
235
|
async function fileToZip(files, type) {
|
|
234
|
-
|
|
236
|
+
let zip = new jszip_1.default();
|
|
235
237
|
for (let prop in files) {
|
|
236
238
|
zip.file(prop, files[prop]);
|
|
237
239
|
}
|
package/lib/builder/util/mp.js
CHANGED
|
@@ -18,9 +18,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
22
|
exports.mergePages = exports.mergePackageDependiences = exports.mergePackageJson = exports.mergeSubPackages = void 0;
|
|
26
23
|
/**
|
|
@@ -31,7 +28,7 @@ exports.mergePages = exports.mergePackageDependiences = exports.mergePackageJson
|
|
|
31
28
|
* Please refer to license text included with this package for license details.
|
|
32
29
|
*/
|
|
33
30
|
const fs = __importStar(require("fs-extra"));
|
|
34
|
-
const lodash_1 =
|
|
31
|
+
const lodash_1 = require("lodash");
|
|
35
32
|
const mp_config_1 = require("../mp/mp_config");
|
|
36
33
|
// 将后面的子包配置合并到前面
|
|
37
34
|
// 暂时不考虑 root 会重名的情况
|
|
@@ -80,10 +77,7 @@ exports.mergePackageDependiences = mergePackageDependiences;
|
|
|
80
77
|
async function mergePages(baseAppJsonPath, mergeAppJsonPath) {
|
|
81
78
|
const baseJson = fs.readJSONSync(baseAppJsonPath);
|
|
82
79
|
const mergeJson = fs.readJSONSync(mergeAppJsonPath);
|
|
83
|
-
baseJson.pages = lodash_1.
|
|
84
|
-
...(baseJson.pages || []),
|
|
85
|
-
...(mergeJson.pages || []),
|
|
86
|
-
]);
|
|
80
|
+
baseJson.pages = (0, lodash_1.uniq)([...(baseJson.pages || []), ...(mergeJson.pages || [])]);
|
|
87
81
|
await fs.writeJSON(baseAppJsonPath, baseJson, { spaces: 2 });
|
|
88
82
|
}
|
|
89
83
|
exports.mergePages = mergePages;
|