@taro-minify-pack/plugin-async-pack 0.0.5-alpha.2 → 0.0.5-alpha.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.
- package/dist/inject-style-component.js +9 -2
- package/dist/inject-style-component.js.map +1 -1
- package/dist/singleton-promise.d.ts +9 -5
- package/dist/singleton-promise.js +27 -18
- package/dist/singleton-promise.js.map +1 -1
- package/dist/transform-pages-wxml.js +4 -3
- package/dist/transform-pages-wxml.js.map +1 -1
- package/dist/transform-react-lazy.js +3 -2
- package/dist/transform-react-lazy.js.map +1 -1
- package/dist/transform-webpack-runtime.js +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +9 -1
- package/dist/utils.js.map +1 -1
- package/package.json +2 -1
- package/src/inject-style-component.ts +9 -2
- package/src/singleton-promise.ts +29 -18
- package/src/transform-pages-wxml.ts +4 -4
- package/src/transform-react-lazy.ts +3 -2
- package/src/transform-webpack-runtime.ts +1 -1
- package/src/utils.ts +5 -0
- package/tsconfig.json +1 -1
|
@@ -13,9 +13,16 @@ exports.InjectStyleComponentName = 'inject-style';
|
|
|
13
13
|
const injectStyleComponentCode = `
|
|
14
14
|
const { SingletonPromise } = require('~/singleton-promise.js')
|
|
15
15
|
Component({
|
|
16
|
+
properties: {
|
|
17
|
+
route: String,
|
|
18
|
+
},
|
|
16
19
|
lifetimes: {
|
|
17
|
-
attached: ()
|
|
18
|
-
|
|
20
|
+
attached: function () {
|
|
21
|
+
return SingletonPromise.loaded({dynamicPackageName:"DYNAMIC_PACKAGE_NAME",pageRoute:this.data.route})
|
|
22
|
+
},
|
|
23
|
+
detached: function () {
|
|
24
|
+
return SingletonPromise.unloaded({dynamicPackageName:"DYNAMIC_PACKAGE_NAME",pageRoute:this.data.route})
|
|
25
|
+
}
|
|
19
26
|
}
|
|
20
27
|
})
|
|
21
28
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-style-component.js","sourceRoot":"","sources":["../src/inject-style-component.ts"],"names":[],"mappings":";;;;;;AACA,gDAAuB;AAEvB,+DAAsC;AACtC,iEAAwC;AACxC,mCAAwF;AAE3E,QAAA,WAAW,GAAG,sBAAsB,CAAA;AAEpC,QAAA,wBAAwB,GAAG,cAAc,CAAA;AAEtD,MAAM,wBAAwB,GAAG
|
|
1
|
+
{"version":3,"file":"inject-style-component.js","sourceRoot":"","sources":["../src/inject-style-component.ts"],"names":[],"mappings":";;;;;;AACA,gDAAuB;AAEvB,+DAAsC;AACtC,iEAAwC;AACxC,mCAAwF;AAE3E,QAAA,WAAW,GAAG,sBAAsB,CAAA;AAEpC,QAAA,wBAAwB,GAAG,cAAc,CAAA;AAEtD,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;CAehC,CAAA;AAID,MAAa,0BAA0B;IASrC,YAAa,GAAQ;QANJ,gBAAW,GAAW,UAAU,CAAA;QAEhC,gBAAW,GAAU,gDAAgD,CAAA;QAErE,cAAS,GAAW,wBAAwB,CAAA;QAG3D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,KAAK,CAAE,QAAkB;QACvB,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAW,EAAE,CAAC,WAAwB,EAAE,EAAE;YACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAA,CAAC,YAAY;YAEvF,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,mBAAW,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC3E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,CAAC;oBAClE,MAAM,kBAAkB,GAAG,IAAA,kCAA0B,kCAAM,IAAI,CAAC,GAAG,KAAE,KAAK,IAAG,CAAA;oBAE7E,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,IAAA,mBAAS,EAAC,kBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAA;oBACzH,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;wBACxE,IAAI,CAAC,IAAA,0CAAkC,kCAAM,IAAI,CAAC,GAAG,KAAE,KAAK,KAAI,SAAS,CAAC;4BAAE,OAAO,MAAM,CAAA;wBACzF,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;wBACjE,MAAM,IAAI,GAAG,cAAc,YAAY,IAAI,CAAA;wBAC3C,OAAO,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;oBAC7B,CAAC,EAAE,EAAE,CAAC,CAAA;oBAEN,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAA;oBAC9C,MAAM,aAAa,GAAG,GAAG,kBAAkB,IAAI,gCAAwB,EAAE,CAAA;oBACzE,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,CAAA;oBACxE,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,gBAAgB,CAAC,CAAA;oBAC7E,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;oBAC7E,WAAW,CAAC,MAAM,CAAC,GAAG,aAAa,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC/E,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAvCD,gEAuCC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
interface Opt {
|
|
2
|
+
dynamicPackageName: string;
|
|
3
|
+
pageRoute: string;
|
|
4
|
+
}
|
|
1
5
|
export declare class SingletonPromise {
|
|
2
6
|
private static instance?;
|
|
3
|
-
private loadTimes;
|
|
4
7
|
private promise?;
|
|
5
8
|
private resolve?;
|
|
6
9
|
constructor();
|
|
7
|
-
static getInstance(key: string): SingletonPromise;
|
|
8
10
|
private resetPromise;
|
|
9
|
-
static
|
|
10
|
-
static
|
|
11
|
-
static
|
|
11
|
+
static getInstance(opt: Pick<Opt, 'dynamicPackageName'>): Map<string, SingletonPromise>;
|
|
12
|
+
static wait(opt: Pick<Opt, 'dynamicPackageName'>): Promise<(void | undefined)[]>;
|
|
13
|
+
static loaded(opt: Opt): void;
|
|
14
|
+
static unloaded(opt: Opt): void;
|
|
12
15
|
}
|
|
16
|
+
export {};
|
|
@@ -3,34 +3,43 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SingletonPromise = void 0;
|
|
4
4
|
class SingletonPromise {
|
|
5
5
|
constructor() {
|
|
6
|
-
this.loadTimes = 0;
|
|
7
6
|
this.resetPromise();
|
|
8
7
|
}
|
|
9
|
-
static getInstance(key) {
|
|
10
|
-
if (!SingletonPromise.instance)
|
|
11
|
-
SingletonPromise.instance = {};
|
|
12
|
-
if (!SingletonPromise.instance[key])
|
|
13
|
-
SingletonPromise.instance[key] = new SingletonPromise();
|
|
14
|
-
return SingletonPromise.instance[key];
|
|
15
|
-
}
|
|
16
8
|
resetPromise() {
|
|
17
9
|
this.promise = new Promise((resolve) => {
|
|
18
10
|
this.resolve = resolve;
|
|
19
11
|
});
|
|
20
12
|
}
|
|
21
|
-
static
|
|
22
|
-
|
|
13
|
+
static getInstance(opt) {
|
|
14
|
+
const { dynamicPackageName } = opt;
|
|
15
|
+
if (!SingletonPromise.instance)
|
|
16
|
+
SingletonPromise.instance = new Map();
|
|
17
|
+
if (!SingletonPromise.instance.has(dynamicPackageName))
|
|
18
|
+
SingletonPromise.instance.set(dynamicPackageName, new Map());
|
|
19
|
+
return SingletonPromise.instance.get(dynamicPackageName);
|
|
20
|
+
}
|
|
21
|
+
static wait(opt) {
|
|
22
|
+
const instance = this.getInstance(opt);
|
|
23
|
+
const currentPages = getCurrentPages();
|
|
24
|
+
return Promise.all(currentPages.map(page => {
|
|
25
|
+
var _a;
|
|
26
|
+
if (!instance.has(page.route))
|
|
27
|
+
instance.set(page.route, new SingletonPromise());
|
|
28
|
+
return (_a = instance.get(page.route)) === null || _a === void 0 ? void 0 : _a.promise;
|
|
29
|
+
}));
|
|
23
30
|
}
|
|
24
|
-
static loaded(
|
|
31
|
+
static loaded(opt) {
|
|
25
32
|
var _a, _b;
|
|
26
|
-
|
|
27
|
-
this.getInstance(
|
|
33
|
+
const { pageRoute } = opt;
|
|
34
|
+
const instance = this.getInstance(opt);
|
|
35
|
+
if (!instance.has(pageRoute))
|
|
36
|
+
instance.set(pageRoute, new SingletonPromise());
|
|
37
|
+
(_b = (_a = instance.get(pageRoute)) === null || _a === void 0 ? void 0 : _a.resolve) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
28
38
|
}
|
|
29
|
-
static unloaded(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.getInstance(key).resetPromise();
|
|
39
|
+
static unloaded(opt) {
|
|
40
|
+
const { pageRoute } = opt;
|
|
41
|
+
const instance = this.getInstance(opt);
|
|
42
|
+
instance.delete(pageRoute);
|
|
34
43
|
}
|
|
35
44
|
}
|
|
36
45
|
exports.SingletonPromise = SingletonPromise;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleton-promise.js","sourceRoot":"","sources":["../src/singleton-promise.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"singleton-promise.js","sourceRoot":"","sources":["../src/singleton-promise.ts"],"names":[],"mappings":";;;AAKA,MAAa,gBAAgB;IAQ3B;QACE,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAE,GAAoC;QACtD,MAAM,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAA;QAClC,IAAI,CAAC,gBAAgB,CAAC,QAAQ;YAAE,gBAAgB,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QACrE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QACpH,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAE,CAAA;IAC3D,CAAC;IAED,MAAM,CAAC,IAAI,CAAE,GAAoC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;YACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAA;YAC/E,OAAO,MAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,0CAAE,OAAO,CAAA;QAC1C,CAAC,CAAC,CAAC,CAAA;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAE,GAAQ;;QACrB,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAA;QAC7E,MAAA,MAAA,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,0CAAE,OAAO,kDAAI,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAE,GAAQ;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACtC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;CACF;AA9CD,4CA8CC"}
|
|
@@ -6,7 +6,7 @@ const appConfigAssetKey = 'app.json';
|
|
|
6
6
|
const transformPagesWXml = (opts) => {
|
|
7
7
|
const { assets, asyncComponents } = opts;
|
|
8
8
|
const curAppConfig = JSON.parse(assets[appConfigAssetKey].source());
|
|
9
|
-
const
|
|
9
|
+
const pageWXmlPaths = (() => {
|
|
10
10
|
var _a;
|
|
11
11
|
const { pages = [], subpackages, subPackages, tabBar } = curAppConfig;
|
|
12
12
|
const tabBarPagePaths = ((_a = tabBar === null || tabBar === void 0 ? void 0 : tabBar.list) === null || _a === void 0 ? void 0 : _a.map((item) => item.pagePath)) || [];
|
|
@@ -17,11 +17,12 @@ const transformPagesWXml = (opts) => {
|
|
|
17
17
|
}, []);
|
|
18
18
|
return [...pages, ...tabBarPagePaths, ...subPackagePagePaths].map((item) => `${item}.wxml`);
|
|
19
19
|
})();
|
|
20
|
-
const asyncComponentCode = Object.keys(asyncComponents).map((item) => `<${item}/>`);
|
|
21
20
|
Object.keys(assets).forEach((assetPath) => {
|
|
22
|
-
if (!
|
|
21
|
+
if (!pageWXmlPaths.includes(assetPath))
|
|
23
22
|
return;
|
|
24
23
|
const source = assets[assetPath].source();
|
|
24
|
+
const pageRoute = assetPath.replace(/\.wxml$/, '');
|
|
25
|
+
const asyncComponentCode = Object.keys(asyncComponents).map((item) => `<${item} route="${pageRoute}"/>`);
|
|
25
26
|
const tempCode = [source, ...asyncComponentCode].join('\n');
|
|
26
27
|
assets[assetPath] = new webpack_sources_1.RawSource(tempCode);
|
|
27
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-pages-wxml.js","sourceRoot":"","sources":["../src/transform-pages-wxml.ts"],"names":[],"mappings":";;;AACA,qDAA2C;AAO3C,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAE7B,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;IAExC,MAAM,YAAY,GAAc,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAY,CAAC,CAAA;IAExF,MAAM,
|
|
1
|
+
{"version":3,"file":"transform-pages-wxml.js","sourceRoot":"","sources":["../src/transform-pages-wxml.ts"],"names":[],"mappings":";;;AACA,qDAA2C;AAO3C,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAE7B,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC/C,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;IAExC,MAAM,YAAY,GAAc,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAY,CAAC,CAAA;IAExF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;;QAC1B,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,YAAY,CAAA;QACrE,MAAM,eAAe,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,EAAE,CAAA;QACxE,MAAM,cAAc,GAAG,WAAW,IAAI,WAAW,IAAI,EAAE,CAAA;QACvD,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAW,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YAC3E,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;YAC1C,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,kBAAkB,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;QAC1F,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,eAAe,EAAE,GAAG,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,CAAA;IAC7F,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACxC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAM;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAY,CAAA;QACnD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAClD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,WAAW,SAAS,KAAK,CAAC,CAAA;QACxG,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3D,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,2BAAS,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAxBY,QAAA,kBAAkB,sBAwB9B"}
|
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
const types = __importStar(require("@babel/types"));
|
|
37
|
+
const utils_1 = require("./utils");
|
|
37
38
|
const customLazySource = '@taro-minify-pack/react-lazy-enhanced';
|
|
38
39
|
exports.default = () => {
|
|
39
40
|
return {
|
|
@@ -41,7 +42,7 @@ exports.default = () => {
|
|
|
41
42
|
Program: {
|
|
42
43
|
enter(programPath, state) {
|
|
43
44
|
const { filename = '' } = state;
|
|
44
|
-
if (new RegExp(customLazySource).test(filename))
|
|
45
|
+
if (new RegExp(customLazySource).test((0, utils_1.normalizeFileName)(filename)))
|
|
45
46
|
return;
|
|
46
47
|
state.reactNamespaces = new Set();
|
|
47
48
|
state.reactLazyBindings = new Set();
|
|
@@ -100,7 +101,7 @@ exports.default = () => {
|
|
|
100
101
|
},
|
|
101
102
|
exit(programPath, state) {
|
|
102
103
|
const { filename = '' } = state;
|
|
103
|
-
if (new RegExp(customLazySource).test(filename))
|
|
104
|
+
if (new RegExp(customLazySource).test((0, utils_1.normalizeFileName)(filename)))
|
|
104
105
|
return;
|
|
105
106
|
let needInject = false;
|
|
106
107
|
const customLazyId = programPath.scope.generateUidIdentifier('customLazy');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-react-lazy.js","sourceRoot":"","sources":["../src/transform-react-lazy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAqC;
|
|
1
|
+
{"version":3,"file":"transform-react-lazy.js","sourceRoot":"","sources":["../src/transform-react-lazy.ts"],"names":[],"mappings":"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"}
|
|
@@ -174,7 +174,7 @@ loadStylesheet = function (chunkId) {
|
|
|
174
174
|
const dynamicPackageNameRegex = DYNAMIC_PACKAGE_NAME_REGEX;
|
|
175
175
|
const [,dynamicPackageName] = fullHref.match(dynamicPackageNameRegex) || [];
|
|
176
176
|
const { SingletonPromise } = require('~/singleton-promise.js');
|
|
177
|
-
return SingletonPromise.wait(dynamicPackageName)
|
|
177
|
+
return SingletonPromise.wait({ dynamicPackageName })
|
|
178
178
|
}
|
|
179
179
|
`;
|
|
180
180
|
const replaceLoadStylesheetFn = (nodePath, opts) => {
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateDynamicPackageName = exports.isDynamicPackageWXssAssetWithOrder = exports.isDynamicPackageWXssAsset = exports.isDynamicPackageJsAsset = exports.isDynamicPackageName = exports.isNumber = exports.hashModBigInt = exports.generateKeyByOrder = void 0;
|
|
6
|
+
exports.normalizeFileName = exports.generateDynamicPackageName = exports.isDynamicPackageWXssAssetWithOrder = exports.isDynamicPackageWXssAsset = exports.isDynamicPackageJsAsset = exports.isDynamicPackageName = exports.isNumber = exports.hashModBigInt = exports.generateKeyByOrder = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
4
8
|
const generateKeyByOrder = (order) => {
|
|
5
9
|
const startStr = 'a'.charCodeAt(0);
|
|
6
10
|
const firstLetter = String.fromCharCode(startStr + Math.floor(order / 26));
|
|
@@ -45,4 +49,8 @@ const generateDynamicPackageName = (opt) => {
|
|
|
45
49
|
return `${opt.dynamicPackageNamePrefix}-${(0, exports.generateKeyByOrder)(opt.order)}`;
|
|
46
50
|
};
|
|
47
51
|
exports.generateDynamicPackageName = generateDynamicPackageName;
|
|
52
|
+
const normalizeFileName = (fileName) => {
|
|
53
|
+
return path_1.default.normalize(fileName).replace(/\\/g, '/');
|
|
54
|
+
};
|
|
55
|
+
exports.normalizeFileName = normalizeFileName;
|
|
48
56
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taro-minify-pack/plugin-async-pack",
|
|
3
|
-
"version": "0.0.5-alpha.
|
|
3
|
+
"version": "0.0.5-alpha.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"@types/babel__traverse": "^7.20.6",
|
|
34
34
|
"@types/node": "^18.19.130",
|
|
35
35
|
"@types/webpack-sources": "^3.2.3",
|
|
36
|
+
"@types/wechat-miniprogram": "^3.4.9",
|
|
36
37
|
"@typescript-eslint/eslint-plugin": "^8.26.1",
|
|
37
38
|
"@typescript-eslint/parser": "^8.26.1",
|
|
38
39
|
"eslint": "^8.19.0",
|
|
@@ -12,9 +12,16 @@ export const InjectStyleComponentName = 'inject-style'
|
|
|
12
12
|
const injectStyleComponentCode = `
|
|
13
13
|
const { SingletonPromise } = require('~/singleton-promise.js')
|
|
14
14
|
Component({
|
|
15
|
+
properties: {
|
|
16
|
+
route: String,
|
|
17
|
+
},
|
|
15
18
|
lifetimes: {
|
|
16
|
-
attached: ()
|
|
17
|
-
|
|
19
|
+
attached: function () {
|
|
20
|
+
return SingletonPromise.loaded({dynamicPackageName:"DYNAMIC_PACKAGE_NAME",pageRoute:this.data.route})
|
|
21
|
+
},
|
|
22
|
+
detached: function () {
|
|
23
|
+
return SingletonPromise.unloaded({dynamicPackageName:"DYNAMIC_PACKAGE_NAME",pageRoute:this.data.route})
|
|
24
|
+
}
|
|
18
25
|
}
|
|
19
26
|
})
|
|
20
27
|
`
|
package/src/singleton-promise.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
interface Opt {
|
|
2
|
+
dynamicPackageName: string
|
|
3
|
+
pageRoute: string
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
export class SingletonPromise {
|
|
2
7
|
// 静态属性存放单例
|
|
3
|
-
private static instance?:
|
|
4
|
-
|
|
5
|
-
private loadTimes = 0
|
|
8
|
+
private static instance?: Map<string, Map<string, SingletonPromise>>
|
|
6
9
|
|
|
7
10
|
private promise?: Promise<void>
|
|
8
11
|
|
|
@@ -12,30 +15,38 @@ export class SingletonPromise {
|
|
|
12
15
|
this.resetPromise()
|
|
13
16
|
}
|
|
14
17
|
|
|
15
|
-
static getInstance (key:string) {
|
|
16
|
-
if (!SingletonPromise.instance) SingletonPromise.instance = {}
|
|
17
|
-
if (!SingletonPromise.instance[key]) SingletonPromise.instance[key] = new SingletonPromise()
|
|
18
|
-
return SingletonPromise.instance[key]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
18
|
private resetPromise () {
|
|
22
19
|
this.promise = new Promise<void>((resolve) => {
|
|
23
20
|
this.resolve = resolve
|
|
24
21
|
})
|
|
25
22
|
}
|
|
26
23
|
|
|
27
|
-
static
|
|
28
|
-
|
|
24
|
+
static getInstance (opt: Pick<Opt, 'dynamicPackageName'>) {
|
|
25
|
+
const { dynamicPackageName } = opt
|
|
26
|
+
if (!SingletonPromise.instance) SingletonPromise.instance = new Map()
|
|
27
|
+
if (!SingletonPromise.instance.has(dynamicPackageName)) SingletonPromise.instance.set(dynamicPackageName, new Map())
|
|
28
|
+
return SingletonPromise.instance.get(dynamicPackageName)!
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static wait (opt: Pick<Opt, 'dynamicPackageName'>) {
|
|
32
|
+
const instance = this.getInstance(opt)
|
|
33
|
+
const currentPages = getCurrentPages()
|
|
34
|
+
return Promise.all(currentPages.map(page => {
|
|
35
|
+
if (!instance.has(page.route)) instance.set(page.route, new SingletonPromise())
|
|
36
|
+
return instance.get(page.route)?.promise
|
|
37
|
+
}))
|
|
29
38
|
}
|
|
30
39
|
|
|
31
|
-
static loaded (
|
|
32
|
-
|
|
33
|
-
this.getInstance(
|
|
40
|
+
static loaded (opt: Opt) {
|
|
41
|
+
const { pageRoute } = opt
|
|
42
|
+
const instance = this.getInstance(opt)
|
|
43
|
+
if (!instance.has(pageRoute)) instance.set(pageRoute, new SingletonPromise())
|
|
44
|
+
instance.get(pageRoute)?.resolve?.()
|
|
34
45
|
}
|
|
35
46
|
|
|
36
|
-
static unloaded (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
47
|
+
static unloaded (opt: Opt) {
|
|
48
|
+
const { pageRoute } = opt
|
|
49
|
+
const instance = this.getInstance(opt)
|
|
50
|
+
instance.delete(pageRoute)
|
|
40
51
|
}
|
|
41
52
|
}
|
|
@@ -13,7 +13,7 @@ export const transformPagesWXml = (opts: Opts) => {
|
|
|
13
13
|
|
|
14
14
|
const curAppConfig: AppConfig = JSON.parse(assets[appConfigAssetKey].source() as string)
|
|
15
15
|
|
|
16
|
-
const
|
|
16
|
+
const pageWXmlPaths = (() => {
|
|
17
17
|
const { pages = [], subpackages, subPackages, tabBar } = curAppConfig
|
|
18
18
|
const tabBarPagePaths = tabBar?.list?.map((item) => item.pagePath) || []
|
|
19
19
|
const curSubPackages = subPackages || subpackages || []
|
|
@@ -24,11 +24,11 @@ export const transformPagesWXml = (opts: Opts) => {
|
|
|
24
24
|
return [...pages, ...tabBarPagePaths, ...subPackagePagePaths].map((item) => `${item}.wxml`)
|
|
25
25
|
})()
|
|
26
26
|
|
|
27
|
-
const asyncComponentCode = Object.keys(asyncComponents).map((item) => `<${item}/>`)
|
|
28
|
-
|
|
29
27
|
Object.keys(assets).forEach((assetPath) => {
|
|
30
|
-
if (!
|
|
28
|
+
if (!pageWXmlPaths.includes(assetPath)) return
|
|
31
29
|
const source = assets[assetPath].source() as string
|
|
30
|
+
const pageRoute = assetPath.replace(/\.wxml$/, '')
|
|
31
|
+
const asyncComponentCode = Object.keys(asyncComponents).map((item) => `<${item} route="${pageRoute}"/>`)
|
|
32
32
|
const tempCode = [source, ...asyncComponentCode].join('\n')
|
|
33
33
|
assets[assetPath] = new RawSource(tempCode)
|
|
34
34
|
})
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PluginObj, NodePath, PluginPass } from '@babel/core'
|
|
2
2
|
import * as types from '@babel/types'
|
|
3
3
|
import { CallExpression, ImportDeclaration, Program, VariableDeclarator } from '@babel/types'
|
|
4
|
+
import { normalizeFileName } from './utils'
|
|
4
5
|
|
|
5
6
|
const customLazySource = '@taro-minify-pack/react-lazy-enhanced'
|
|
6
7
|
|
|
@@ -16,7 +17,7 @@ export default (): PluginObj<State> => {
|
|
|
16
17
|
enter (programPath: NodePath<Program>, state: State) {
|
|
17
18
|
const { filename = '' } = state
|
|
18
19
|
|
|
19
|
-
if (new RegExp(customLazySource).test(filename)) return
|
|
20
|
+
if (new RegExp(customLazySource).test(normalizeFileName(filename))) return
|
|
20
21
|
|
|
21
22
|
state.reactNamespaces = new Set()
|
|
22
23
|
|
|
@@ -85,7 +86,7 @@ export default (): PluginObj<State> => {
|
|
|
85
86
|
exit (programPath: NodePath<Program>, state: State) {
|
|
86
87
|
const { filename = '' } = state
|
|
87
88
|
|
|
88
|
-
if (new RegExp(customLazySource).test(filename)) return
|
|
89
|
+
if (new RegExp(customLazySource).test(normalizeFileName(filename))) return
|
|
89
90
|
|
|
90
91
|
let needInject = false
|
|
91
92
|
|
|
@@ -175,7 +175,7 @@ loadStylesheet = function (chunkId) {
|
|
|
175
175
|
const dynamicPackageNameRegex = DYNAMIC_PACKAGE_NAME_REGEX;
|
|
176
176
|
const [,dynamicPackageName] = fullHref.match(dynamicPackageNameRegex) || [];
|
|
177
177
|
const { SingletonPromise } = require('~/singleton-promise.js');
|
|
178
|
-
return SingletonPromise.wait(dynamicPackageName)
|
|
178
|
+
return SingletonPromise.wait({ dynamicPackageName })
|
|
179
179
|
}
|
|
180
180
|
`
|
|
181
181
|
|
package/src/utils.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import path from 'path'
|
|
1
2
|
import { AsyncPackOpts } from './types'
|
|
2
3
|
|
|
3
4
|
export const generateKeyByOrder = (order: number) => {
|
|
@@ -40,3 +41,7 @@ export const generateDynamicPackageName = (opt: AsyncPackOpts & { order?: number
|
|
|
40
41
|
if (!isNumber(opt.order) || opt.dynamicPackageCount <= 1) return opt.dynamicPackageNamePrefix
|
|
41
42
|
return `${opt.dynamicPackageNamePrefix}-${generateKeyByOrder(opt.order!)}`
|
|
42
43
|
}
|
|
44
|
+
|
|
45
|
+
export const normalizeFileName = (fileName: string) => {
|
|
46
|
+
return path.normalize(fileName).replace(/\\/g, '/')
|
|
47
|
+
}
|