@aiot-toolkit/aiotpack 2.0.6-beta.6 → 2.0.6-beta.8

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.
@@ -31,6 +31,7 @@ export default interface IManifest {
31
31
  component?: string;
32
32
  }>;
33
33
  };
34
+ services: IService[] | Record<string, IService>;
34
35
  minAPILevel?: number;
35
36
  packageInfo?: Dictionary<string | number>;
36
37
  icon: string;
@@ -38,4 +39,9 @@ export default interface IManifest {
38
39
  export interface IFeatures {
39
40
  name: string;
40
41
  }
42
+ export interface IService {
43
+ name: string;
44
+ autoStart?: boolean;
45
+ path: string;
46
+ }
41
47
  export {};
@@ -40,8 +40,12 @@ class BeforeCompileUtils {
40
40
  let entryList = [];
41
41
  // 存储轻卡路由
42
42
  let liteCardList = [];
43
+
44
+ // services 路由
45
+ let serviceList = [];
43
46
  const {
44
- router
47
+ router,
48
+ services
45
49
  } = manifestContent;
46
50
  if (router) {
47
51
  const {
@@ -84,9 +88,13 @@ class BeforeCompileUtils {
84
88
  // 没有router配置
85
89
  _sharedUtils.ColorConsole.throw(`### manifest ### No router configuration`);
86
90
  }
91
+ if (services) {
92
+ serviceList = Array.isArray(services) ? services : Object.values(services);
93
+ }
87
94
  if (compilation) {
88
95
  compilation['entries'] = entryList;
89
96
  compilation['liteCards'] = liteCardList;
97
+ compilation['services'] = serviceList;
90
98
  }
91
99
  return Promise.resolve();
92
100
  };
@@ -12,6 +12,7 @@ var parse5 = _interopRequireWildcard(require("aiot-parse5"));
12
12
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
13
13
  var _path = _interopRequireDefault(require("path"));
14
14
  var _QuickAppDocHelp = require("@aiot-toolkit/shared-utils/lib/utils/QuickAppDocHelp");
15
+ var _StyleUtil = _interopRequireDefault(require("@aiot-toolkit/parser/lib/ux/utils/StyleUtil"));
15
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -143,10 +144,29 @@ class UxLoaderUtils {
143
144
  `;
144
145
  }
145
146
  const integrateFunction = (appImport, appStyleTree, appTemplateTree, appScriptTree) => {
147
+ const services = compilation['services'];
146
148
  const scriptCode = appScriptTree.getText();
147
149
  const hasScript = Boolean(scriptCode) && scriptCode !== '""';
150
+ const relativeFilePath = _path.default.relative(_path.default.join(context.projectPath, compilerOption.sourceRoot), filePath).replace(/\\/g, _path.default.posix.sep);
151
+ const isService = services?.some(service => relativeFilePath.startsWith(service.path));
152
+
148
153
  // script代码放在第三个位置不能变化,影响更新source map
149
- return isAppUx ? [`${appImport.join('\n')}`, `var $app_style$ = ${UxLoaderUtils.wrapStyle(appStyleTree, file, compilerOption)}`, hasScript ? `var $app_script$ = ${UxLoaderUtils.wrapScript(false, appScriptTree)}` : '', hasScript ? `$app_script$({}, $app_exports$, $app_require$);` : `$app_exports$.default = {}`, `$app_exports$.default.style = $app_style$;`, `$app_exports$.default.manifest = ${manifestJson}`, translateStyleFunc()] : [`${appImport.join('\n')}`, `var $app_style$ = ${UxLoaderUtils.wrapStyle(appStyleTree, file, compilerOption)}`, hasScript ? `var $app_script$ = ${UxLoaderUtils.wrapScript(isPageUx, appScriptTree)}` : '', `var $app_template$ = ${UxLoaderUtils.wrapTempalte(appTemplateTree, file, compilerOption)}`, `${UxLoaderUtils.getReturnType(isPageUx)} function ($app_exports$) {`, hasScript ? `$app_script$({}, $app_exports$, $app_require$);` : `$app_exports$.default = {}`, `$app_exports$.default.template = $app_template$;`, `$app_exports$.default.style = $app_style$;`, `}`];
154
+ const createAppWrapper = () => {
155
+ return [`${appImport.join('\n')}`, `var $app_style$ = ${UxLoaderUtils.wrapStyle(appStyleTree, file, compilerOption)}`, hasScript ? `var $app_script$ = ${UxLoaderUtils.wrapScript(false, appScriptTree)}` : '', hasScript ? `$app_script$({}, $app_exports$, $app_require$);` : `$app_exports$.default = {}`, `$app_exports$.default.style = $app_style$;`, `$app_exports$.default.manifest = ${manifestJson}`, translateStyleFunc()];
156
+ };
157
+ const createComponentWrapper = () => {
158
+ return [`${appImport.join('\n')}`, `var $app_style$ = ${UxLoaderUtils.wrapStyle(appStyleTree, file, compilerOption)}`, hasScript ? `var $app_script$ = ${UxLoaderUtils.wrapScript(isPageUx, appScriptTree)}` : '', `var $app_template$ = ${UxLoaderUtils.wrapTempalte(appTemplateTree, file, compilerOption)}`, `${UxLoaderUtils.getReturnType(isPageUx)} function ($app_exports$) {`, hasScript ? `$app_script$({}, $app_exports$, $app_require$);` : `$app_exports$.default = {}`, `$app_exports$.default.template = $app_template$;`, `$app_exports$.default.style = $app_style$;`, `}`];
159
+ };
160
+ const createServiceWrapper = () => {
161
+ return ['', '', `var $app_script$ = ${UxLoaderUtils.wrapScript(isPageUx, appScriptTree)}`, `$app_script$({}, $app_exports$, $app_require$);`, `module.exports = $app_exports$.default;`];
162
+ };
163
+ if (isAppUx) {
164
+ return createAppWrapper();
165
+ } else if (isService) {
166
+ return createServiceWrapper();
167
+ } else {
168
+ return createComponentWrapper();
169
+ }
150
170
  };
151
171
  const {
152
172
  targetTree,
@@ -334,7 +354,19 @@ class UxLoaderUtils {
334
354
  return result;
335
355
  }
336
356
  static wrapStyle(styleNodes, file, compilerOption) {
337
- const code = JSON.stringify(styleNodes);
357
+ // 排序,媒体查询放到最后
358
+ const sortedNodes = [...styleNodes];
359
+ sortedNodes.sort((a, b) => {
360
+ const conditionA = _StyleUtil.default.isConditionStyleItem(a[0]);
361
+ const conditionB = _StyleUtil.default.isConditionStyleItem(b[0]);
362
+ if (conditionA && !conditionB) {
363
+ return 1;
364
+ } else if (!conditionA && conditionB) {
365
+ return -1;
366
+ }
367
+ return 0;
368
+ });
369
+ const code = JSON.stringify(sortedNodes);
338
370
  if (compilerOption.enableProtobuf) {
339
371
  if (styleNodes?.length) {
340
372
  const result = BinaryPlugin.addStyle(file.path, file.path, code);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiot-toolkit/aiotpack",
3
- "version": "2.0.6-beta.6",
3
+ "version": "2.0.6-beta.8",
4
4
  "description": "The process tool for packaging aiot projects.",
5
5
  "keywords": [
6
6
  "aiotpack"
@@ -19,14 +19,14 @@
19
19
  "test": "node ./__tests__/aiotpack.test.js"
20
20
  },
21
21
  "dependencies": {
22
- "@aiot-toolkit/generator": "2.0.6-beta.6",
23
- "@aiot-toolkit/parser": "2.0.6-beta.6",
24
- "@aiot-toolkit/shared-utils": "2.0.6-beta.6",
22
+ "@aiot-toolkit/generator": "2.0.6-beta.8",
23
+ "@aiot-toolkit/parser": "2.0.6-beta.8",
24
+ "@aiot-toolkit/shared-utils": "2.0.6-beta.8",
25
25
  "@hap-toolkit/aaptjs": "^2.0.0",
26
26
  "@rspack/core": "^1.3.9",
27
27
  "aiot-parse5": "^1.0.2",
28
28
  "babel-loader": "^9.1.3",
29
- "file-lane": "2.0.6-beta.6",
29
+ "file-lane": "2.0.6-beta.8",
30
30
  "file-loader": "^6.2.0",
31
31
  "fs-extra": "^11.2.0",
32
32
  "jsrsasign": "^11.1.0",
@@ -42,5 +42,5 @@
42
42
  "@types/jsrsasign": "^10.5.12",
43
43
  "@types/webpack-sources": "^3.2.3"
44
44
  },
45
- "gitHead": "71dfc780e74e71df4d731300e7c0d6ea9e494358"
45
+ "gitHead": "b9380b1c748324938f84da01d035345116f8d0ba"
46
46
  }