@tuya-sat/micro-script 3.0.18-beta.2 → 3.0.18-beta.4

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.
@@ -91,6 +91,11 @@ function getCommonConfig({ isDev, isBuild, }) {
91
91
  type: 'umd',
92
92
  },
93
93
  },
94
+ resolve: {
95
+ alias: {
96
+ micro: path_1.default.resolve(__dirname, 'node_modules/.micro'),
97
+ },
98
+ },
94
99
  module: {
95
100
  rules: [
96
101
  {
@@ -14,7 +14,7 @@ const reactConfig = ({ isDev, isBuild, currentFramework, isTs, }) => {
14
14
  rules: [
15
15
  {
16
16
  test: /\.(js|mjs|jsx|ts|tsx)$/,
17
- // exclude: /node_modules/,
17
+ exclude: /node_modules\/[^.micro]/,
18
18
  use: [
19
19
  {
20
20
  loader: require.resolve('babel-loader'),
@@ -111,6 +111,8 @@ function consturctEntry(manifest, oem_micro_app_id, entry_id, baseUrl, lang, dir
111
111
  //@ts-ignore
112
112
  menu.entry_name_en = pickText(menu.entry_name, 'en');
113
113
  //@ts-ignore
114
+ menu.entry_name = pickText(menu.entry_name, lang);
115
+ //@ts-ignore
114
116
  menu.micro_app_name = pickText(menu.micro_app_name, lang);
115
117
  menu.path = `${baseUrl}${menu.path}`;
116
118
  if (menu.sub_entry_list.length) {
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
@@ -7,34 +16,38 @@ const webpack_1 = __importDefault(require("webpack"));
7
16
  const chalk_1 = __importDefault(require("chalk"));
8
17
  const ora_1 = __importDefault(require("ora"));
9
18
  const webpack_config_1 = __importDefault(require("../config/webpack.config"));
10
- const BUILD_FAIL_TIP = "糟糕:打包失败了,下面是具体信息";
11
- const spinner = (0, ora_1.default)("building").start();
19
+ const template_1 = __importDefault(require("../template"));
20
+ const BUILD_FAIL_TIP = '糟糕:打包失败了,下面是具体信息';
21
+ const spinner = (0, ora_1.default)('building').start();
12
22
  const config = (0, webpack_config_1.default)();
13
- (0, webpack_1.default)(config).run((err, stats) => {
14
- if (err) {
15
- spinner.fail();
16
- console.log(chalk_1.default.red(BUILD_FAIL_TIP));
17
- console.log(err.stack || err);
18
- process.exit(1);
19
- }
20
- const { version, assets, warnings, errors } = stats.toJson();
21
- if (stats.hasErrors()) {
22
- spinner.fail();
23
- console.log(chalk_1.default.red(BUILD_FAIL_TIP));
24
- console.log(errors);
25
- process.exit(1);
26
- }
27
- spinner.succeed();
28
- if (stats.hasWarnings()) {
29
- console.log(chalk_1.default.yellow("难受:有告警信息,下面是具体信息"));
30
- console.log(warnings.map((item) => item.message).join("\n"));
31
- }
32
- console.log(chalk_1.default.yellow(`当前打包工具:webpack@${version}`));
33
- console.log(chalk_1.default.blue("资源清单:"));
34
- const assetsInfo = assets.map(({ size, name }) => {
35
- return ` ${name} ${chalk_1.default.white(size > 1024 ? `~${Math.floor(size / 1024)}KB` : `${size}B`)}`;
36
- });
37
- assetsInfo.map((item) => {
38
- console.log(chalk_1.default.blue(item));
23
+ (() => __awaiter(void 0, void 0, void 0, function* () {
24
+ yield (0, template_1.default)();
25
+ (0, webpack_1.default)(config).run((err, stats) => {
26
+ if (err) {
27
+ spinner.fail();
28
+ console.log(chalk_1.default.red(BUILD_FAIL_TIP));
29
+ console.log(err.stack || err);
30
+ process.exit(1);
31
+ }
32
+ const { version, assets, warnings, errors } = stats.toJson();
33
+ if (stats.hasErrors()) {
34
+ spinner.fail();
35
+ console.log(chalk_1.default.red(BUILD_FAIL_TIP));
36
+ console.log(errors);
37
+ process.exit(1);
38
+ }
39
+ spinner.succeed();
40
+ if (stats.hasWarnings()) {
41
+ console.log(chalk_1.default.yellow('难受:有告警信息,下面是具体信息'));
42
+ console.log(warnings.map((item) => item.message).join('\n'));
43
+ }
44
+ console.log(chalk_1.default.yellow(`当前打包工具:webpack@${version}`));
45
+ console.log(chalk_1.default.blue('资源清单:'));
46
+ const assetsInfo = assets.map(({ size, name }) => {
47
+ return ` ${name} ${chalk_1.default.white(size > 1024 ? `~${Math.floor(size / 1024)}KB` : `${size}B`)}`;
48
+ });
49
+ assetsInfo.map((item) => {
50
+ console.log(chalk_1.default.blue(item));
51
+ });
39
52
  });
40
- });
53
+ }))();
@@ -46,6 +46,8 @@ exports.default = () => __awaiter(void 0, void 0, void 0, function* () {
46
46
  !fs.existsSync(microPath) && fs.mkdirSync(microPath, { recursive: true });
47
47
  fs.copyFileSync(path.join(__dirname, './micro-app/index.css'), path.join(microPath, 'index.css'));
48
48
  fs.copyFileSync(path.join(__dirname, './micro-app/public-path.js'), path.join(microPath, 'public-path.js'));
49
+ fs.copyFileSync(path.join(__dirname, './micro-app/interfaces.ts'), path.join(microPath, 'interfaces.ts'));
50
+ fs.copyFileSync(path.join(__dirname, './micro-app/interfaces.ts'), path.join(path.join(process.cwd(), 'node_modules/.micro'), 'interfaces.ts'));
49
51
  let content = fs.readFileSync(path.join(__dirname, './micro-app/index.tsx'), {
50
52
  encoding: 'utf8',
51
53
  });
@@ -3,37 +3,12 @@ import ReactDOM from 'react-dom';
3
3
  import { BrowserRouter } from 'react-router-dom';
4
4
  import { getI18n } from 'react-i18next';
5
5
  import { message } from 'antd';
6
- import { CaptureContext, Event, Severity } from '@sentry/types';
6
+ import { IQiankunProps } from './interfaces';
7
7
  import App from './App';
8
8
  import './lang';
9
9
  import './index.css';
10
10
  import 'theme';
11
11
 
12
- export interface IQiankunProps {
13
- base: string;
14
- container: HTMLElement; // 子应用所在容器
15
- dynamicProps: DynamicProps; // 面包屑
16
- getOwnMenu: () => { entry_name: string }; // 获取当前选中菜单
17
- hasPermission: (permissionCode: string) => boolean;
18
- isSupportMobile: boolean; // 是否支持移动端
19
- mainHistory: mainHistory; // 用于微应用间跳转
20
- modifySelectedMenu: () => void; //
21
- region: 'tx' | 'us' | 'eu' | 'in' | 'ueaz' | 'we' | 'sea';
22
- resourcePrefix: string; // 静态资源地址
23
- sentry: {
24
- captureEvent: (event: Event) => string;
25
- captureMessage: (
26
- message: string,
27
- captureContext?: CaptureContext | Severity
28
- ) => string;
29
- captureException: (
30
- exception: any,
31
- captureContext?: CaptureContext
32
- ) => string;
33
- };
34
- tyLang: 'zh' | 'en'; // 当前语言
35
- langResource: any;
36
- }
37
12
  export let microProps: IQiankunProps;
38
13
 
39
14
  function render(props: IQiankunProps) {
@@ -0,0 +1,61 @@
1
+ import { CaptureContext, Event, Severity } from '@sentry/types';
2
+
3
+ interface mainHistory {
4
+ push: (path, state?) => void;
5
+ replace: (path, state?) => void;
6
+ go: (n: number) => void;
7
+ goBack: () => void;
8
+ goForward: () => void;
9
+ }
10
+
11
+ interface DynamicProps {
12
+ setBreadcrumb: SetBreadcrumb;
13
+ [key: string]: any;
14
+ }
15
+
16
+ interface SetBreadcrumb {
17
+ (breadcrumbInfos?: BreadcrumbInfoInput[]): void;
18
+ }
19
+
20
+ type BreadcrumbInfoInput =
21
+ | {
22
+ type: 'auto' | 'root';
23
+ name?: never;
24
+ path?: never;
25
+ }
26
+ | {
27
+ type: 'menu';
28
+ name?: never;
29
+ path: string;
30
+ }
31
+ | {
32
+ type: 'c';
33
+ name: string;
34
+ path: string;
35
+ };
36
+
37
+ export interface IQiankunProps {
38
+ base: string;
39
+ container: HTMLElement; // 子应用所在容器
40
+ dynamicProps: DynamicProps; // 面包屑
41
+ getOwnMenu: () => { entry_name: string }; // 获取当前选中菜单
42
+ hasPermission: (permissionCode: string) => boolean;
43
+ isSupportMobile: boolean; // 是否支持移动端
44
+ mainHistory: mainHistory; // 用于微应用间跳转
45
+ modifySelectedMenu: () => void; //
46
+ region: 'tx' | 'us' | 'eu' | 'in' | 'ueaz' | 'we' | 'sea';
47
+ resourcePrefix: string; // 静态资源地址
48
+ sentry: {
49
+ captureEvent: (event: Event) => string;
50
+ captureMessage: (
51
+ message: string,
52
+ captureContext?: CaptureContext | Severity
53
+ ) => string;
54
+ captureException: (
55
+ exception: any,
56
+ captureContext?: CaptureContext
57
+ ) => string;
58
+ };
59
+ tyLang: 'zh' | 'en'; // 当前语言
60
+ langResource: any;
61
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuya-sat/micro-script",
3
- "version": "3.0.18-beta.2",
3
+ "version": "3.0.18-beta.4",
4
4
  "bin": "./dist/bin/cli.js",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",
@@ -23,9 +23,9 @@
23
23
  "@babel/preset-typescript": "7.16.7",
24
24
  "@babel/traverse": "^7.20.13",
25
25
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.4",
26
- "@tuya-sat/micro-dev-loader": "3.0.18-beta.2",
27
- "@tuya-sat/micro-dev-proxy": "3.0.18-beta.2",
28
- "@tuya-sat/micro-utils": "3.0.18-beta.2",
26
+ "@tuya-sat/micro-dev-loader": "3.0.18-beta.4",
27
+ "@tuya-sat/micro-dev-proxy": "3.0.18-beta.4",
28
+ "@tuya-sat/micro-utils": "3.0.18-beta.4",
29
29
  "@types/kill-port": "^2.0.0",
30
30
  "babel-loader": "8.2.4",
31
31
  "babel-plugin-import": "1.13.3",