@aiot-toolkit/aiotpack 2.0.2-beta.18 → 2.0.2-beta.19

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/README.md CHANGED
@@ -1,46 +1,46 @@
1
- # `aiotpack`
2
-
3
- 最终打包工具,包含各类语言、各类平台的打包配置
4
-
5
- ## 目录结构
6
-
7
- | 目录 | 描述 |
8
- | -------- | ------------------------------------------------------------------------------- |
9
- | config | FileLane 配置,基于此配置,可完成“源码项目-->目标代码项目-->应用程序”的完整流程 |
10
- | compiler | 目标语言-->应用程序编译器 |
11
- | loader | 源码语言-->目标代码语言 |
12
- | utils | 语言、项目无关的辅助工具 |
13
-
14
- ## config
15
-
16
- 通过在 FileLane 中配置各项参数,可完成“**源码项目-->目标代码项目-->应用程序**”的完整流程
17
-
18
- ## compiler
19
-
20
- #### 概述
21
-
22
- 源码已生成目标代码项目,此时需要生成**最终产物--应用程序**。compiler 目录中的代码即为完成此项工作而生。
23
-
24
- #### 子目录
25
-
26
- compiler 下的每个子目录,对应一种目标语言;每种目标语言在不同平台又可能有不同的生成方式。
27
-
28
- 因此结构为:`compiler/目标语言/目标平台`,例如:
29
-
30
- - `compiler/javascript/vela`--javascript 语言在 vela 平台的生成
31
-
32
- #### 添加编译器
33
-
34
- 1. 按上述目录结构,添加目录
35
- 2. 创建编译器`class XCompiler`, 建议实现实现`ICompiler` 接口,以便以后实现统一的用户端接口
36
- 3. 在需要的位置调用
37
-
38
- ```js
39
- new XCompiler().compile({
40
- projectPath: '',
41
- mode: 'development',
42
- platform: 'native'
43
- })
44
- ```
45
-
46
- ## loader--各类语言的转换器
1
+ # `aiotpack`
2
+
3
+ 最终打包工具,包含各类语言、各类平台的打包配置
4
+
5
+ ## 目录结构
6
+
7
+ | 目录 | 描述 |
8
+ | -------- | ------------------------------------------------------------------------------- |
9
+ | config | FileLane 配置,基于此配置,可完成“源码项目-->目标代码项目-->应用程序”的完整流程 |
10
+ | compiler | 目标语言-->应用程序编译器 |
11
+ | loader | 源码语言-->目标代码语言 |
12
+ | utils | 语言、项目无关的辅助工具 |
13
+
14
+ ## config
15
+
16
+ 通过在 FileLane 中配置各项参数,可完成“**源码项目-->目标代码项目-->应用程序**”的完整流程
17
+
18
+ ## compiler
19
+
20
+ #### 概述
21
+
22
+ 源码已生成目标代码项目,此时需要生成**最终产物--应用程序**。compiler 目录中的代码即为完成此项工作而生。
23
+
24
+ #### 子目录
25
+
26
+ compiler 下的每个子目录,对应一种目标语言;每种目标语言在不同平台又可能有不同的生成方式。
27
+
28
+ 因此结构为:`compiler/目标语言/目标平台`,例如:
29
+
30
+ - `compiler/javascript/vela`--javascript 语言在 vela 平台的生成
31
+
32
+ #### 添加编译器
33
+
34
+ 1. 按上述目录结构,添加目录
35
+ 2. 创建编译器`class XCompiler`, 建议实现实现`ICompiler` 接口,以便以后实现统一的用户端接口
36
+ 3. 在需要的位置调用
37
+
38
+ ```js
39
+ new XCompiler().compile({
40
+ projectPath: '',
41
+ mode: 'development',
42
+ platform: 'native'
43
+ })
44
+ ```
45
+
46
+ ## loader--各类语言的转换器
@@ -135,7 +135,7 @@ UxAfterCompile.copyResource = (params) => __awaiter(void 0, void 0, void 0, func
135
135
  'DS_Store',
136
136
  'map'
137
137
  ];
138
- const excludeReg = `\.(${excludeExtList.join('|')})$`;
138
+ const excludeReg = `\\.(${excludeExtList.join('|')})$`;
139
139
  shared_utils_1.FileUtil.copyFiles(path_1.default.join(projectPath, sourceRoot), path_1.default.join(projectPath, outputPath), new RegExp(excludeReg));
140
140
  shared_utils_1.FileUtil.copyFiles(path_1.default.join(projectPath, sourceRoot), path_1.default.join(projectPath, outputPath), undefined, includeList);
141
141
  };
@@ -39,76 +39,76 @@ const entryTemplate = (options) => {
39
39
  for (let i = 0; i < aspects.length; i++) {
40
40
  const aspect = aspects[i];
41
41
  const { routes = [] } = aspect;
42
- res += `
43
- const aspectName_${i + 1} = '${aspect.name}'
42
+ res += `
43
+ const aspectName_${i + 1} = '${aspect.name}'
44
44
  const pathPages_${i + 1} = new Map()`;
45
45
  for (let r = 0; r < routes.length; r++) {
46
46
  const route = routes[r];
47
- res += `
48
- pathPages_${i + 1}.set('${route.route}', function (params?: ${parser_1.HomeState.interface}${i + 1}_${r + 1}_): Page {
49
- return new Page${i + 1}_${r + 1}(params)
50
- })
47
+ res += `
48
+ pathPages_${i + 1}.set('${route.route}', function (params?: ${parser_1.HomeState.interface}${i + 1}_${r + 1}_): Page {
49
+ return new Page${i + 1}_${r + 1}(params)
50
+ })
51
51
  `;
52
52
  }
53
- res += `
54
- const aspectDef_${i + 1}: AspectDefinition = {
55
- newFn: (): ViewAspect => new AspectClass${i + 1}(),
56
- pathPages: pathPages_${i + 1}
57
- }
58
- aspectDefs.set(aspectName_${i + 1}, aspectDef_${i + 1})
53
+ res += `
54
+ const aspectDef_${i + 1}: AspectDefinition = {
55
+ newFn: (): ViewAspect => new AspectClass${i + 1}(),
56
+ pathPages: pathPages_${i + 1}
57
+ }
58
+ aspectDefs.set(aspectName_${i + 1}, aspectDef_${i + 1})
59
59
  `;
60
60
  }
61
61
  return res;
62
62
  }
63
- return `import {
64
- // class
65
- App,
66
- AppDefinition,
67
- AppContainer,
68
- AspectDefinition,
69
- ViewAspect,
70
- Page,
71
- Route,
72
- RouteInfo,
73
- // framework
74
- context,
75
- getInfoFromRoute,
76
-
77
- // export function
78
- on
79
- } from '../node_modules/${parser_1.tsFrameWork.name}/index'
80
-
81
- // import app
82
- import AppClass from './${options.appPath}'
83
- ${generatImportAspects()}
84
- console.log('startApp-start timeEnd:', Date.now())
85
-
86
- function getAspectDefs() {
87
- const aspectDefs = new Map()
88
- ${generateDefs()}
89
- return aspectDefs
90
- }
91
-
92
- function entry(path: string): void {
93
- console.log('~~~~~~~~~entry path', path)
94
- const route: Route = { uri: path }
95
- const routeInfo: RouteInfo = getInfoFromRoute(route)
96
- // app
97
- let appName: string = ''
98
- if (routeInfo?.appName) appName = routeInfo.appName
99
- let app = context.getApp(appName)
100
- if (app === null) {
101
- const appDef: AppDefinition = {
102
- newFn: (): App => new AppClass()
103
- }
104
- const aspectDefs = getAspectDefs()
105
- app = new AppContainer(appDef, aspectDefs)
106
- }
107
- context.openApp(app, routeInfo)
108
- }
109
-
110
- // export api to native
111
- export { entry, on }
63
+ return `import {
64
+ // class
65
+ App,
66
+ AppDefinition,
67
+ AppContainer,
68
+ AspectDefinition,
69
+ ViewAspect,
70
+ Page,
71
+ Route,
72
+ RouteInfo,
73
+ // framework
74
+ context,
75
+ getInfoFromRoute,
76
+
77
+ // export function
78
+ on
79
+ } from '../node_modules/${parser_1.tsFrameWork.name}/index'
80
+
81
+ // import app
82
+ import AppClass from './${options.appPath}'
83
+ ${generatImportAspects()}
84
+ console.log('startApp-start timeEnd:', Date.now())
85
+
86
+ function getAspectDefs() {
87
+ const aspectDefs = new Map()
88
+ ${generateDefs()}
89
+ return aspectDefs
90
+ }
91
+
92
+ function entry(path: string): void {
93
+ console.log('~~~~~~~~~entry path', path)
94
+ const route: Route = { uri: path }
95
+ const routeInfo: RouteInfo = getInfoFromRoute(route)
96
+ // app
97
+ let appName: string = ''
98
+ if (routeInfo?.appName) appName = routeInfo.appName
99
+ let app = context.getApp(appName)
100
+ if (app === null) {
101
+ const appDef: AppDefinition = {
102
+ newFn: (): App => new AppClass()
103
+ }
104
+ const aspectDefs = getAspectDefs()
105
+ app = new AppContainer(appDef, aspectDefs)
106
+ }
107
+ context.openApp(app, routeInfo)
108
+ }
109
+
110
+ // export api to native
111
+ export { entry, on }
112
112
  `;
113
113
  };
114
114
  exports.entryTemplate = entryTemplate;
@@ -22,7 +22,10 @@ class UxBeforeCompile {
22
22
  _a = UxBeforeCompile;
23
23
  UxBeforeCompile.validateManifest = (_b) => __awaiter(void 0, [_b], void 0, function* ({ context }) {
24
24
  const { projectPath } = context;
25
- return UxFileUtils_1.default.validateManifest(projectPath);
25
+ const errors = yield UxFileUtils_1.default.validateManifest(projectPath);
26
+ if (errors === null || errors === void 0 ? void 0 : errors.length) {
27
+ return Promise.reject(errors);
28
+ }
26
29
  });
27
30
  UxBeforeCompile.validateSitemap = (_b) => __awaiter(void 0, [_b], void 0, function* ({ context }) {
28
31
  const { projectPath } = context;
@@ -43,48 +43,48 @@ class WrapPlugin {
43
43
  });
44
44
  }
45
45
  wrapPage(source) {
46
- return new webpack_sources_1.ConcatSource(`
47
- (function () {
48
- var createPageHandler = function () {
49
- // 转换动态 style 的函数
50
- var $translateStyle$ = function (value) {
51
- if (typeof value === 'string') {
52
- return Object.fromEntries(value.split(';').filter(item => Boolean(item && item.trim())).map(
53
- item => {
54
- const matchs = item.match(/([^:]+):(.*)/)
55
- if (matchs && matchs.lenth> 2) {
56
- return [matchs[1].trim().replace(/-([a-z])/g, (_, match) => match.toUpperCase()), matchs[2].trim()]
57
- }
58
- return []
59
- }))}
60
- return value
61
- }
62
- return`, source, `;
63
- };
64
- if (typeof window === "undefined") {
65
- return createPageHandler();
66
- } else {
67
- window.createPageHandler = createPageHandler;
68
- }
46
+ return new webpack_sources_1.ConcatSource(`
47
+ (function () {
48
+ var createPageHandler = function () {
49
+ // 转换动态 style 的函数
50
+ var $translateStyle$ = function (value) {
51
+ if (typeof value === 'string') {
52
+ return Object.fromEntries(value.split(';').filter(item => Boolean(item && item.trim())).map(
53
+ item => {
54
+ const matchs = item.match(/([^:]+):(.*)/)
55
+ if (matchs && matchs.lenth> 2) {
56
+ return [matchs[1].trim().replace(/-([a-z])/g, (_, match) => match.toUpperCase()), matchs[2].trim()]
57
+ }
58
+ return []
59
+ }))}
60
+ return value
61
+ }
62
+ return`, source, `;
63
+ };
64
+ if (typeof window === "undefined") {
65
+ return createPageHandler();
66
+ } else {
67
+ window.createPageHandler = createPageHandler;
68
+ }
69
69
  })();`);
70
70
  }
71
71
  wrapApp(source) {
72
72
  const { projectPath, sourceRoot } = this.param;
73
- return new webpack_sources_1.ConcatSource(`
74
- (function () {
75
- var $app_define_wrap$ = $app_define_wrap$ || function () {};
76
- var manifestJson =${JSON.stringify(UxFileUtils_1.default.getMainfestInfo(projectPath, sourceRoot))}
77
- var createAppHandler = function () {
78
- `, source, `
79
- }
80
- if (typeof window === "undefined") {
81
- return createAppHandler();
82
- } else {
83
- window.createAppHandler = createAppHandler;
84
- // H5注入manifest以获取features
85
- global.manifest = manifestJson;
86
- }
87
- })();
73
+ return new webpack_sources_1.ConcatSource(`
74
+ (function () {
75
+ var $app_define_wrap$ = $app_define_wrap$ || function () {};
76
+ var manifestJson =${JSON.stringify(UxFileUtils_1.default.getMainfestInfo(projectPath, sourceRoot))}
77
+ var createAppHandler = function () {
78
+ `, source, `
79
+ }
80
+ if (typeof window === "undefined") {
81
+ return createAppHandler();
82
+ } else {
83
+ window.createAppHandler = createAppHandler;
84
+ // H5注入manifest以获取features
85
+ global.manifest = manifestJson;
86
+ }
87
+ })();
88
88
  `);
89
89
  }
90
90
  }
@@ -21,37 +21,37 @@ class WrapPlugin {
21
21
  entrys.forEach((entry) => {
22
22
  if (compilation.assets[entry]) {
23
23
  const source = compilation.assets[entry];
24
- compilation.assets[entry] = new webpack_sources_1.ConcatSource(`
25
- export default function(global, globalThis, window, $app_exports$, $app_evaluate$){
26
- var org_app_require = $app_require$;
27
-
28
- (function(global, globalThis, window, $app_exports$, $app_evaluate$){
29
- var setTimeout = global.setTimeout;
30
- var setInterval = global.setInterval;
31
- var clearTimeout = global.clearTimeout;
32
- var clearInterval = global.clearInterval;
33
- var $app_require$ = global.$app_require$ || org_app_require
34
-
35
- // 转换动态 style 的函数
36
- var $translateStyle$ = function (value) {
37
- if (typeof value === 'string') {
38
- return Object.fromEntries(value.split(';').filter(item => Boolean(item && item.trim())).map(
39
- item => {
40
- const matchs = item.match(/([^:]+):(.*)/)
41
- if (matchs && matchs.lenth> 2) {
42
- return [matchs[1].trim().replace(/-([a-z])/g, (_, match) => match.toUpperCase()), matchs[2].trim()]
43
- }
44
- return []
45
- }))}
46
- return value
47
- }
48
-
49
- var createPageHandler = function() {
50
- return `, source, `
51
- }
52
-
53
- return createPageHandler();
54
- })(global, globalThis, window, $app_exports$, $app_evaluate$)
24
+ compilation.assets[entry] = new webpack_sources_1.ConcatSource(`
25
+ export default function(global, globalThis, window, $app_exports$, $app_evaluate$){
26
+ var org_app_require = $app_require$;
27
+
28
+ (function(global, globalThis, window, $app_exports$, $app_evaluate$){
29
+ var setTimeout = global.setTimeout;
30
+ var setInterval = global.setInterval;
31
+ var clearTimeout = global.clearTimeout;
32
+ var clearInterval = global.clearInterval;
33
+ var $app_require$ = global.$app_require$ || org_app_require
34
+
35
+ // 转换动态 style 的函数
36
+ var $translateStyle$ = function (value) {
37
+ if (typeof value === 'string') {
38
+ return Object.fromEntries(value.split(';').filter(item => Boolean(item && item.trim())).map(
39
+ item => {
40
+ const matchs = item.match(/([^:]+):(.*)/)
41
+ if (matchs && matchs.lenth> 2) {
42
+ return [matchs[1].trim().replace(/-([a-z])/g, (_, match) => match.toUpperCase()), matchs[2].trim()]
43
+ }
44
+ return []
45
+ }))}
46
+ return value
47
+ }
48
+
49
+ var createPageHandler = function() {
50
+ return `, source, `
51
+ }
52
+
53
+ return createPageHandler();
54
+ })(global, globalThis, window, $app_exports$, $app_evaluate$)
55
55
  }`);
56
56
  }
57
57
  });
@@ -5,6 +5,6 @@ declare class Jsc {
5
5
  readonly projectPath: string;
6
6
  readonly buildPath: string;
7
7
  constructor(projectPath: string, buildPath: string);
8
- jsc(): Promise<boolean | void>;
8
+ jsc(): Promise<boolean>;
9
9
  }
10
10
  export default Jsc;
@@ -32,6 +32,7 @@ class Jsc {
32
32
  })
33
33
  .catch((error) => {
34
34
  shared_utils_1.ColorConsole.throw(error.message);
35
+ return Promise.reject(error);
35
36
  });
36
37
  }
37
38
  }
@@ -18,7 +18,7 @@ class UxCompileUtil {
18
18
  fs_extra_1.default.unlinkSync(item);
19
19
  }
20
20
  else {
21
- fs_extra_1.default.rmdirSync(item, { recursive: true });
21
+ fs_extra_1.default.rmSync(item, { recursive: true, force: true });
22
22
  }
23
23
  }
24
24
  });
@@ -1,27 +1,27 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIEpDCCAowCCQC0eMZYkbPqvzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
3
- b2NhbGhvc3QwHhcNMjEwNDA3MDc0MTI2WhcNMzEwNDA1MDc0MTI2WjAUMRIwEAYD
4
- VQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDR
5
- fEK1e8OxPAmtBc/bkz+Vy1T0EcRgHjA+UzYNj1kzBFb7CW9V7DIesXJ5mAwR1HOm
6
- D32Ijou2oSDaHKunnM576PgSCeoRUJkycUSXS0mK2+opuqXTywayTVmcNoqUuE+T
7
- /XjUJZ+MXsl0zxC5pv0HyMG2sInpIuahj2QrRim7u8IEJugSQLCdw53EVrAQ51s9
8
- AsSyL/IvdqtYK5kNAz+cIVdn4Vx88YOteqbeMSIg1ICqDc3IgD0sCjQesqIpsJBV
9
- LJZfWQsRMFt0tUyZQCqjYOSdy0tbrIOL2QjtwSXOPB8bUptvScxevrHAML3qNDz+
10
- oPdJRMCLK3DOaRorfGPqA0mjlxE6cVXKnkvQlM6Kf8QItYlLMspvv+TFx3VdakbI
11
- SzP058PEyf2A7IWSzWvFlpigtGuBCtrq8liyFXAsTxMwIB/TwF/G0A1AANg8aK6Z
12
- td/gHWqcOEbGDwEDCmTn4ockpKWbkrM3kqt75fl8yjeaDz1qN15cz/5YKz8aZnuC
13
- 3Pe4VT+QbCeflcIjLJbmKBCJ7sbbDQJOWPiq2QLjqrvG3rUTXF2xlUa3piWpxyHF
14
- VICuCaojUgl80eb/9kfVUXdDVB8oJIJE/hLEnt90lXUIo7roz4hwFKPuqVhw8368
15
- FOQvrQW/ogILoSFuPrCSrRbaBOqlefoHiaDZsSpwvwIDAQABMA0GCSqGSIb3DQEB
16
- CwUAA4ICAQAYb0jECnfZxdIbbCQyRaIMHitZctUlhM48edNX8Jhj+3fMX4rgaua7
17
- +QMlEhWSaXRZzN5VPA1ifFWaDjndde72iihYgtoTXRaHWquUKw1DkRizdzg7zH9k
18
- 6pi9QNBSDJ1+Pbpf+2ZDcIfTf+YsqmRDNgtmGEQmvad87eIW415ggvRnb0i2fm7v
19
- 0nCqMHSjTkkp9XHBXQ1jnz4zWNr1s+pEEIjy4+oOr7vjuBe/JTUKiQxyqQXWb4MQ
20
- KhKvPaHsyMpa733/3BVaPrIYM9Y+cR6hVD5DdYsmhFA7oTk7oBpysDREAoXlTuDf
21
- X+lCVRwek7jDIi1JgOjCroTFRF003V7pul67coGKj2mBTESb+B5FwXuDDDgkti1f
22
- 62FXQQFaBslY8N+tq3YQiZ4CZzREsZVDuRTJWC7nV6+wnOorgeGtmFBjCB11CvuR
23
- av6rT4TA9Cp30EfWNYSJhmHNRHTSoFAUfbMpjUJ/ZoUfYN0QukFxBmDhy6sg5ZFg
24
- RibPbqnSXmq9O2n+eHhJsIzrufkt9SSrs2VE2Xzzjfyshqajp92/UJYvyPVFCNKk
25
- ja34I+m9g7BsgJ83CDcVIZG6QEBGvXHVNuN/5AmH4ZbVAjhcVLUB2FWKxnQJzI8g
26
- lfWndbecBeyMfWktqudmF/RH/PpRSscmSFEYBt4Y38HI53xfIp74zQ==
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEpDCCAowCCQC0eMZYkbPqvzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls
3
+ b2NhbGhvc3QwHhcNMjEwNDA3MDc0MTI2WhcNMzEwNDA1MDc0MTI2WjAUMRIwEAYD
4
+ VQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDR
5
+ fEK1e8OxPAmtBc/bkz+Vy1T0EcRgHjA+UzYNj1kzBFb7CW9V7DIesXJ5mAwR1HOm
6
+ D32Ijou2oSDaHKunnM576PgSCeoRUJkycUSXS0mK2+opuqXTywayTVmcNoqUuE+T
7
+ /XjUJZ+MXsl0zxC5pv0HyMG2sInpIuahj2QrRim7u8IEJugSQLCdw53EVrAQ51s9
8
+ AsSyL/IvdqtYK5kNAz+cIVdn4Vx88YOteqbeMSIg1ICqDc3IgD0sCjQesqIpsJBV
9
+ LJZfWQsRMFt0tUyZQCqjYOSdy0tbrIOL2QjtwSXOPB8bUptvScxevrHAML3qNDz+
10
+ oPdJRMCLK3DOaRorfGPqA0mjlxE6cVXKnkvQlM6Kf8QItYlLMspvv+TFx3VdakbI
11
+ SzP058PEyf2A7IWSzWvFlpigtGuBCtrq8liyFXAsTxMwIB/TwF/G0A1AANg8aK6Z
12
+ td/gHWqcOEbGDwEDCmTn4ockpKWbkrM3kqt75fl8yjeaDz1qN15cz/5YKz8aZnuC
13
+ 3Pe4VT+QbCeflcIjLJbmKBCJ7sbbDQJOWPiq2QLjqrvG3rUTXF2xlUa3piWpxyHF
14
+ VICuCaojUgl80eb/9kfVUXdDVB8oJIJE/hLEnt90lXUIo7roz4hwFKPuqVhw8368
15
+ FOQvrQW/ogILoSFuPrCSrRbaBOqlefoHiaDZsSpwvwIDAQABMA0GCSqGSIb3DQEB
16
+ CwUAA4ICAQAYb0jECnfZxdIbbCQyRaIMHitZctUlhM48edNX8Jhj+3fMX4rgaua7
17
+ +QMlEhWSaXRZzN5VPA1ifFWaDjndde72iihYgtoTXRaHWquUKw1DkRizdzg7zH9k
18
+ 6pi9QNBSDJ1+Pbpf+2ZDcIfTf+YsqmRDNgtmGEQmvad87eIW415ggvRnb0i2fm7v
19
+ 0nCqMHSjTkkp9XHBXQ1jnz4zWNr1s+pEEIjy4+oOr7vjuBe/JTUKiQxyqQXWb4MQ
20
+ KhKvPaHsyMpa733/3BVaPrIYM9Y+cR6hVD5DdYsmhFA7oTk7oBpysDREAoXlTuDf
21
+ X+lCVRwek7jDIi1JgOjCroTFRF003V7pul67coGKj2mBTESb+B5FwXuDDDgkti1f
22
+ 62FXQQFaBslY8N+tq3YQiZ4CZzREsZVDuRTJWC7nV6+wnOorgeGtmFBjCB11CvuR
23
+ av6rT4TA9Cp30EfWNYSJhmHNRHTSoFAUfbMpjUJ/ZoUfYN0QukFxBmDhy6sg5ZFg
24
+ RibPbqnSXmq9O2n+eHhJsIzrufkt9SSrs2VE2Xzzjfyshqajp92/UJYvyPVFCNKk
25
+ ja34I+m9g7BsgJ83CDcVIZG6QEBGvXHVNuN/5AmH4ZbVAjhcVLUB2FWKxnQJzI8g
26
+ lfWndbecBeyMfWktqudmF/RH/PpRSscmSFEYBt4Y38HI53xfIp74zQ==
27
27
  -----END CERTIFICATE-----
@@ -1,51 +1,51 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIJKQIBAAKCAgEA0XxCtXvDsTwJrQXP25M/lctU9BHEYB4wPlM2DY9ZMwRW+wlv
3
- VewyHrFyeZgMEdRzpg99iI6LtqEg2hyrp5zOe+j4EgnqEVCZMnFEl0tJitvqKbql
4
- 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
- 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
- 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
- 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
- SzLKb7/kxcd1XWpGyEsz9OfDxMn9gOyFks1rxZaYoLRrgQra6vJYshVwLE8TMCAf
9
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- WYpE3TibI6eQeFoyAkF3g5sWffbd9NjzX9AcOoHnr/zIbuC2SRMFdtzuPYWd6vdc
23
- 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
- 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
- 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
- mETrPLWnac9rJa6M93EOTr/5zut71THl9pMQJRFmR2Nb4FbOvcYIzGDzDCC3KcMP
27
- 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
- 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
- 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
- NIkJujdtLflvxxmEYs54wpzS/PKjqeYuaTW979PuG4x0J1PiB9hO4qQsBbCoyHwu
31
- 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
- 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
- Tv9lz7qnw60a1yof6lq2EETAICi/X0R8qd2xZnOOwBsqyZOs6lIux8D+jc+Pd/7z
34
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 2u0EfOZtT5FZ2yjDdEIxBGvyRLtdbtpHVwKCAQAMY2gSyiTWlAQnB3s0IRZlEjzJ
46
- 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
- Xn6zR83WAN7ZTygBnRo2xDUu/xuTZJyfVTq7SoqzYkk3HMOEUKOWZ07fmRRP0mie
48
- PzU/gbG+Da46qkXLA30asIrfwrYtSP+LR5R7nsDYaSuVeoiKkXtj8pFwaUVGBi5s
49
- 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
- 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
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
51
  -----END RSA PRIVATE KEY-----
@@ -22,12 +22,12 @@ declare class UxConfig implements IFileLaneConfig<IJavascriptCompileOption> {
22
22
  * @returns
23
23
  */
24
24
  collectFile: (entryFileList?: IChangedFile[]) => string[];
25
- exclude: (RegExp | ((filePath: string) => boolean))[];
25
+ exclude: (string | ((filePath: string) => boolean))[];
26
26
  get output(): string;
27
27
  beforeWorks: (typeof UxBeforeWorks.cleanOutput)[];
28
- beforeCompile: import("file-lane").PreWork<IJavascriptCompileOption>[];
28
+ beforeCompile: import("../../../file-lane/lib").PreWork<IJavascriptCompileOption>[];
29
29
  afterCompile: {
30
- worker: import("file-lane").FollowWork<IJavascriptCompileOption>;
30
+ worker: import("../../../file-lane/lib").FollowWork<IJavascriptCompileOption>;
31
31
  workerDescribe: string;
32
32
  }[];
33
33
  afterWorks: (typeof UxAfterWorks.cleanOutput)[];
@@ -52,9 +52,10 @@ class UxConfig {
52
52
  return getProjectFiles();
53
53
  };
54
54
  this.exclude = [
55
- /node_modules/,
56
- /dist/,
57
- /build/,
55
+ '**/node_modules{,/**}',
56
+ '**/dist{,/**}',
57
+ '**/build{,/**}',
58
+ '**/.git{,/**}',
58
59
  (filePath) => {
59
60
  // 如果 是 script, style文件,且同路径下存在同名 hml,则忽略
60
61
  const { ext, name } = path_1.default.parse(filePath);
@@ -4,7 +4,7 @@ import XtsLoader from '../loader/xts/XtsLoader';
4
4
  * XtsConfig
5
5
  */
6
6
  declare class XtsConfig implements IFileLaneConfig {
7
- exclude: RegExp[];
7
+ exclude: string[];
8
8
  output: string;
9
9
  module: {
10
10
  rules: {
@@ -14,7 +14,7 @@ declare class XtsConfig implements IFileLaneConfig {
14
14
  };
15
15
  beforeCompile: PreWork[];
16
16
  afterCompile: {
17
- worker: import("file-lane").FollowWork<import("..").IXtsCompileOptions>;
17
+ worker: import("../../../file-lane/lib").FollowWork<import("..").IXtsCompileOptions>;
18
18
  }[];
19
19
  }
20
20
  export default XtsConfig;
@@ -12,7 +12,13 @@ const XtsLoader_1 = __importDefault(require("../loader/xts/XtsLoader"));
12
12
  */
13
13
  class XtsConfig {
14
14
  constructor() {
15
- this.exclude = [/node_modules/, /dist/, /build/, /wasmUnpacked/];
15
+ this.exclude = [
16
+ '**/node_modules{,/**}',
17
+ '**/dist{,/**}',
18
+ '**/build{,/**}',
19
+ '**/.git{,/**}',
20
+ '**/.wasmUnpacked{,/**}'
21
+ ];
16
22
  this.output = 'build';
17
23
  this.module = {
18
24
  rules: [
@@ -54,7 +54,7 @@ BeforeCompileUtils.getEntries = (params) => {
54
54
  }
55
55
  else {
56
56
  // 路径不存在
57
- shared_utils_1.ColorConsole.throw(`### manifest ### path '${entryDir}/${entryPages.join(' | ')}' does not exist`);
57
+ shared_utils_1.ColorConsole.throw(`### manifest ### path '${path_1.default.join(entryDir, entryPages.join(' | '))}' does not exist`);
58
58
  }
59
59
  });
60
60
  }
@@ -1,5 +1,5 @@
1
- import IManifest from '../../compiler/javascript/vela/interface/IManifest';
2
1
  import FileLaneCompilation from 'file-lane/lib/FileLaneCompilation';
2
+ import IManifest from '../../compiler/javascript/vela/interface/IManifest';
3
3
  export declare class UxFileUtils {
4
4
  static readonly CONFIG_FILE_NAME = "manifest.json";
5
5
  /**
@@ -19,9 +19,10 @@ export declare class UxFileUtils {
19
19
  /**
20
20
  * 检查 manifest文件,并显示错误信息
21
21
  *
22
- * 1. TypeError,使用Error 样式
23
- * 2. 其它错误,使用 Warn 样式
24
- * 3. 如果存在TypeError,则终止程序
22
+ * 1. 使用ManifestSchema 校验
23
+ * 1. TypeError: Error
24
+ * 2. 其它: Warn
25
+ * 2. 检查 router.entry 是否存在于 router.pages
25
26
  *
26
27
  * @param projectPath 项目路径
27
28
  * @param sourceRoot 源码路径--相对项目根目录
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.UxFileUtils = void 0;
7
7
  const ColorConsole_1 = __importDefault(require("@aiot-toolkit/shared-utils/lib/ColorConsole"));
8
- const CommonUtil_1 = __importDefault(require("@aiot-toolkit/shared-utils/lib/utils/CommonUtil"));
9
8
  const ILog_1 = require("@aiot-toolkit/shared-utils/lib/interface/ILog");
9
+ const CommonUtil_1 = __importDefault(require("@aiot-toolkit/shared-utils/lib/utils/CommonUtil"));
10
10
  const fs_extra_1 = __importDefault(require("fs-extra"));
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const ManifestSchema_1 = __importDefault(require("./ManifestSchema"));
@@ -32,9 +32,10 @@ class UxFileUtils {
32
32
  /**
33
33
  * 检查 manifest文件,并显示错误信息
34
34
  *
35
- * 1. TypeError,使用Error 样式
36
- * 2. 其它错误,使用 Warn 样式
37
- * 3. 如果存在TypeError,则终止程序
35
+ * 1. 使用ManifestSchema 校验
36
+ * 1. TypeError: Error
37
+ * 2. 其它: Warn
38
+ * 2. 检查 router.entry 是否存在于 router.pages
38
39
  *
39
40
  * @param projectPath 项目路径
40
41
  * @param sourceRoot 源码路径--相对项目根目录
@@ -48,27 +49,26 @@ class UxFileUtils {
48
49
  style: ColorConsole_1.default.getStyle(ILog_1.Loglevel.THROW)
49
50
  });
50
51
  }
52
+ // 1
51
53
  const jsonData = this.getMainfestInfo(projectPath, sourceRoot);
52
54
  const schema = ManifestSchema_1.default;
53
- const errors = CommonUtil_1.default.validateJson(jsonData, schema);
54
- if (errors) {
55
+ const errors = CommonUtil_1.default.validateJson(jsonData, schema) || [];
56
+ // 2
57
+ const { entry, pages } = jsonData.router;
58
+ if (!pages[entry]) {
59
+ errors.push(new TypeError(`router.entry content: ${entry}, is missing in router.pages`));
60
+ }
61
+ if (errors === null || errors === void 0 ? void 0 : errors.length) {
55
62
  ColorConsole_1.default.warn(`Manefest.json error: `, ...errors.map((item, index) => {
56
63
  return {
57
- word: `\r\n${index + 1}.${item.message}`,
64
+ word: `\r\n${index + 1}. ${item.message}`,
58
65
  style: item instanceof TypeError
59
66
  ? ColorConsole_1.default.getStyle(ILog_1.Loglevel.ERROR)
60
67
  : ColorConsole_1.default.getStyle(ILog_1.Loglevel.WARN)
61
68
  };
62
69
  }));
63
- const stop = Boolean(errors.find((item) => item instanceof TypeError));
64
- if (stop) {
65
- ColorConsole_1.default.throw({
66
- word: `missing required content, program stoped`,
67
- style: ColorConsole_1.default.getStyle(ILog_1.Loglevel.THROW)
68
- });
69
- }
70
70
  }
71
- return errors;
71
+ return errors.length ? errors : undefined;
72
72
  }
73
73
  /**
74
74
  * 检查 sitemap.json 文件,并显示错误信息
@@ -219,19 +219,19 @@ class UxLoaderUtils {
219
219
  // 如果aiotfor存在,需要把函数体替换为aiotfor.funcArr
220
220
  if (aiotfor) {
221
221
  const { funcArr = [], key, value } = aiotfor;
222
- const forFun = `function(${key || '$idx'}, ${value || '$item'}) {
223
- return [
224
- ${funcArr.map((item) => funToString(item)).join(',\r\n')}
225
- ]
222
+ const forFun = `function(${key || '$idx'}, ${value || '$item'}) {
223
+ return [
224
+ ${funcArr.map((item) => funToString(item)).join(',\r\n')}
225
+ ]
226
226
  }`;
227
227
  return forFun;
228
228
  }
229
229
  if (aiotcb) {
230
230
  const { funcArr = [] } = aiotcb;
231
- const cbFun = `function($data){
232
- return [
233
- ${funcArr.map((item) => funToString(item)).join(',\r\n')}
234
- ]
231
+ const cbFun = `function($data){
232
+ return [
233
+ ${funcArr.map((item) => funToString(item)).join(',\r\n')}
234
+ ]
235
235
  }`;
236
236
  return cbFun;
237
237
  }
@@ -252,8 +252,8 @@ class UxLoaderUtils {
252
252
  const entries = Object.entries(obj).map(([key, value]) => {
253
253
  return `"${key}": ${processValue(value)}`;
254
254
  });
255
- return `{
256
- ${entries.join(',\r\n ')}
255
+ return `{
256
+ ${entries.join(',\r\n ')}
257
257
  }`;
258
258
  };
259
259
  const { path } = file;
@@ -261,21 +261,21 @@ class UxLoaderUtils {
261
261
  const { funcArr = [], optArr } = aiot;
262
262
  const templateResult = BinaryPlugin.addTemplate(path, path, code);
263
263
  BinaryPlugin.addTagName(path, path);
264
- const result = `function (vm) {
265
- const _vm_ = vm || this
266
- return aiot.__cv__(
267
- "${templateResult.name}",
268
- ${templateResult.index},
269
- {
270
- __vm__:_vm_,
271
- __func__:[
272
- ${funcArr.map((item) => funToString(item)).join(',\r\n')}
273
- ],
274
- __optsArr__:[
275
- ${optArr.map((item) => stringifyObjectWithFunctions(item))},
276
- ]
277
- }
278
- )
264
+ const result = `function (vm) {
265
+ const _vm_ = vm || this
266
+ return aiot.__cv__(
267
+ "${templateResult.name}",
268
+ ${templateResult.index},
269
+ {
270
+ __vm__:_vm_,
271
+ __func__:[
272
+ ${funcArr.map((item) => funToString(item)).join(',\r\n')}
273
+ ],
274
+ __optsArr__:[
275
+ ${optArr.map((item) => stringifyObjectWithFunctions(item))},
276
+ ]
277
+ }
278
+ )
279
279
  }`;
280
280
  return result;
281
281
  }
@@ -285,9 +285,9 @@ class UxLoaderUtils {
285
285
  * @returns
286
286
  */
287
287
  static wrapTempalte(templateTree, file, compilerOption) {
288
- const result = `function (vm) {
289
- const _vm_ = vm || this
290
- return ${templateTree.getFullText()}
288
+ const result = `function (vm) {
289
+ const _vm_ = vm || this
290
+ return ${templateTree.getFullText()}
291
291
  }`;
292
292
  if (compilerOption.enableProtobuf) {
293
293
  return this.addTemplateProtobuf(file, result);
@@ -319,27 +319,27 @@ class UxLoaderUtils {
319
319
  }
320
320
  }
321
321
  // 页面组件需要添加ViewModel数据校验和处理代码
322
- UxLoaderUtils.contenAccess = `\n
323
- const moduleOwn = exports.default || module.exports
324
- const accessors = ['public', 'protected', 'private']
325
-
326
- if (moduleOwn.data && accessors.some(function (acc) { return moduleOwn[acc] })) {
327
- throw new Error('页面VM对象中的属性data不可与"' + accessors.join(',') + '"同时存在,请使用private替换data名称')
328
- }
329
- else if (!moduleOwn.data) {
330
- moduleOwn.data = {}
331
- moduleOwn._descriptor = {}
332
- accessors.forEach(function (acc) {
333
- const accType = typeof moduleOwn[acc]
334
- if (accType === 'object') {
335
- moduleOwn.data = Object.assign(moduleOwn.data, moduleOwn[acc])
336
- for (const name in moduleOwn[acc]) {
337
- moduleOwn._descriptor[name] = { access: acc }
338
- }
339
- }
340
- else if (accType === 'function') {
341
- console.warn('页面VM对象中的属性' + acc + '的值不能是函数,请使用对象')
342
- }
343
- })
322
+ UxLoaderUtils.contenAccess = `\n
323
+ const moduleOwn = exports.default || module.exports
324
+ const accessors = ['public', 'protected', 'private']
325
+
326
+ if (moduleOwn.data && accessors.some(function (acc) { return moduleOwn[acc] })) {
327
+ throw new Error('页面VM对象中的属性data不可与"' + accessors.join(',') + '"同时存在,请使用private替换data名称')
328
+ }
329
+ else if (!moduleOwn.data) {
330
+ moduleOwn.data = {}
331
+ moduleOwn._descriptor = {}
332
+ accessors.forEach(function (acc) {
333
+ const accType = typeof moduleOwn[acc]
334
+ if (accType === 'object') {
335
+ moduleOwn.data = Object.assign(moduleOwn.data, moduleOwn[acc])
336
+ for (const name in moduleOwn[acc]) {
337
+ moduleOwn._descriptor[name] = { access: acc }
338
+ }
339
+ }
340
+ else if (accType === 'function') {
341
+ console.warn('页面VM对象中的属性' + acc + '的值不能是函数,请使用对象')
342
+ }
343
+ })
344
344
  }`;
345
345
  exports.default = UxLoaderUtils;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiot-toolkit/aiotpack",
3
- "version": "2.0.2-beta.18",
3
+ "version": "2.0.2-beta.19",
4
4
  "description": "The process tool for packaging aiot projects.",
5
5
  "keywords": [
6
6
  "aiotpack"
@@ -19,16 +19,16 @@
19
19
  "test": "node ./__tests__/aiotpack.test.js"
20
20
  },
21
21
  "dependencies": {
22
- "@aiot-toolkit/generator": "2.0.2-beta.18",
23
- "@aiot-toolkit/parser": "2.0.2-beta.18",
24
- "@aiot-toolkit/shared-utils": "2.0.2-beta.18",
22
+ "@aiot-toolkit/generator": "2.0.2-beta.19",
23
+ "@aiot-toolkit/parser": "2.0.2-beta.19",
24
+ "@aiot-toolkit/shared-utils": "2.0.2-beta.19",
25
25
  "@hap-toolkit/aaptjs": "^2.0.0",
26
26
  "@rspack/core": "^1.0.0",
27
27
  "aiot-parse5": "^1.0.0",
28
28
  "archiver": "^7.0.1",
29
29
  "babel-loader": "^9.1.3",
30
30
  "fast-glob": "^3.3.2",
31
- "file-lane": "2.0.2-beta.18",
31
+ "file-lane": "2.0.2-beta.19",
32
32
  "file-loader": "^6.2.0",
33
33
  "fs-extra": "^11.2.0",
34
34
  "jsrsasign": "^11.1.0",
@@ -45,5 +45,5 @@
45
45
  "@types/jsrsasign": "^10.5.12",
46
46
  "@types/webpack-sources": "^3.2.3"
47
47
  },
48
- "gitHead": "b73a79ef04edac808f316bf8b8fb1718422daa1c"
48
+ "gitHead": "7c6ed600fe84ee9de9b00c6e95dfabf3bfb3ad65"
49
49
  }