@taro-minify-pack/plugin-async-pack 0.0.5-alpha.7 → 0.0.5

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.
Files changed (42) hide show
  1. package/README.md +11 -44
  2. package/dist/index.js +14 -45
  3. package/dist/index.js.map +1 -1
  4. package/dist/merge-output.d.ts +12 -0
  5. package/dist/merge-output.js +26 -0
  6. package/dist/merge-output.js.map +1 -0
  7. package/dist/transform-app-config.d.ts +0 -1
  8. package/dist/transform-app-config.js +2 -5
  9. package/dist/transform-app-config.js.map +1 -1
  10. package/dist/transform-app-stylesheet.d.ts +6 -0
  11. package/dist/transform-app-stylesheet.js +14 -0
  12. package/dist/transform-app-stylesheet.js.map +1 -0
  13. package/dist/transform-webpack-runtime.js +4 -46
  14. package/dist/transform-webpack-runtime.js.map +1 -1
  15. package/dist/types.d.ts +0 -1
  16. package/dist/utils.d.ts +0 -4
  17. package/dist/utils.js +1 -15
  18. package/dist/utils.js.map +1 -1
  19. package/package.json +1 -5
  20. package/src/index.ts +13 -50
  21. package/src/merge-output.ts +33 -0
  22. package/src/transform-app-config.ts +1 -8
  23. package/src/transform-app-stylesheet.ts +17 -0
  24. package/src/transform-webpack-runtime.ts +6 -56
  25. package/src/types.ts +0 -1
  26. package/src/utils.ts +0 -10
  27. package/dist/inject-style-component.d.ts +0 -14
  28. package/dist/inject-style-component.js +0 -62
  29. package/dist/inject-style-component.js.map +0 -1
  30. package/dist/singleton-promise.d.ts +0 -16
  31. package/dist/singleton-promise.js +0 -46
  32. package/dist/singleton-promise.js.map +0 -1
  33. package/dist/transform-pages-wxml.d.ts +0 -7
  34. package/dist/transform-pages-wxml.js +0 -31
  35. package/dist/transform-pages-wxml.js.map +0 -1
  36. package/dist/transform-specifier-with-source.d.ts +0 -16
  37. package/dist/transform-specifier-with-source.js +0 -139
  38. package/dist/transform-specifier-with-source.js.map +0 -1
  39. package/src/inject-style-component.ts +0 -70
  40. package/src/singleton-promise.ts +0 -52
  41. package/src/transform-pages-wxml.ts +0 -35
  42. package/src/transform-specifier-with-source.ts +0 -142
package/README.md CHANGED
@@ -1,52 +1,28 @@
1
1
  # @taro-minify-pack/plugin-async-pack
2
2
 
3
- 异步加载主包代码,优化主包体积(包含异步模块`js`与样式文件)
3
+ 异步加载主包代码,优化主包体积(仅包含异步模块`js`文件)
4
4
 
5
5
  ## ✨ 功能特性
6
6
 
7
7
  - **主包体积优化**:将动态导入的模块自动拆分到异步分包,有效减少主包体积
8
- - **样式文件异步加载**:支持异步模块的样式文件同步异步加载
9
- - **自动转换 React.lazy**:无需手动修改代码,自动将 React.lazy 转换为增强版实现
10
8
  - **灵活配置**:可自定义异步分包名称前缀和数量
11
- - **自动化处理**:自动修改小程序配置文件和页面WXML,无需手动操作
9
+ - **自动化处理**:自动修改小程序配置文件,无需手动操作
12
10
  - **性能提升**:减少小程序启动时间,提升用户体验
13
11
 
14
12
  ## 📦 安装
15
13
 
16
- ### 必需依赖安装
17
- 使用该预设时,需要同时安装 `@taro-minify-pack/react-lazy-enhanced`或 `@taro-minify-pack/vue-lazy-enhanced` 包以支持异步组件样式加载:
18
-
19
- #### react
20
- ##### npm 安装
21
14
  ```bash
22
- npm install @taro-minify-pack/plugin-async-pack @taro-minify-pack/react-lazy-enhanced
15
+ npm install @taro-minify-pack/plugin-async-pack
23
16
  ```
24
17
 
25
18
  ### yarn 安装
26
19
  ```bash
27
- yarn add @taro-minify-pack/plugin-async-pack @taro-minify-pack/react-lazy-enhanced
20
+ yarn add @taro-minify-pack/plugin-async-pack
28
21
  ```
29
22
 
30
23
  ### pnpm 安装
31
24
  ```bash
32
- pnpm add @taro-minify-pack/plugin-async-pack @taro-minify-pack/react-lazy-enhanced
33
- ```
34
-
35
- #### vue
36
-
37
- ##### npm 安装
38
- ```bash
39
- npm install @taro-minify-pack/plugin-async-pack @taro-minify-pack/vue-lazy-enhanced
40
- ```
41
-
42
- ### yarn 安装
43
- ```bash
44
- yarn add @taro-minify-pack/plugin-async-pack @taro-minify-pack/vue-lazy-enhanced
45
- ```
46
-
47
- ### pnpm 安装
48
- ```bash
49
- pnpm add @taro-minify-pack/plugin-async-pack @taro-minify-pack/vue-lazy-enhanced
25
+ pnpm add @taro-minify-pack/plugin-async-pack
50
26
  ```
51
27
 
52
28
  ## ⚙️ 配置
@@ -81,8 +57,6 @@ module.exports = {
81
57
  },
82
58
  plugins: [
83
59
  ['@taro-minify-pack/plugin-async-pack', {
84
- // 框架类型,可选 'react' 或 'vue'
85
- framework: 'react',
86
60
  // 异步分包名前缀,默认为 'dynamic-common'
87
61
  dynamicPackageNamePrefix: 'dynamic-common',
88
62
  // 异步分包数量,默认为 1
@@ -102,7 +76,6 @@ const module = await import('./dynamic-module')
102
76
 
103
77
  ### React 组件懒加载
104
78
  ```tsx
105
- // 插件会自动将 React.lazy 转换为使用 @taro-minify-pack/react-lazy-enhanced 的实现
106
79
  import { lazy, Suspense } from 'react'
107
80
 
108
81
  const DynamicComponent = lazy(() => import('./DynamicComponent'))
@@ -143,22 +116,15 @@ const AsyncComponent = defineAsyncComponent(() => import('./async-component')
143
116
  1. **Webpack 配置修改**:
144
117
  - 覆盖 `splitChunks` 规则,使`common`与`vendors`只处理同步模块
145
118
  - 配置 `chunkFilename` 生成规则,确保异步模块正确输出到指定分包
146
- - 修改 `miniCssExtractPlugin` 配置,确保异步模块的样式文件也能正确拆分到指定分包
147
-
148
- 2. **Babel 转换**:
149
- - 自动将所有 `React.lazy` 调用转换为使用 `@taro-minify-pack/react-lazy-enhanced` 的实现
150
- - 无需手动修改代码即可获得增强功能
119
+ - 修改 `miniCssExtractPlugin` 配置,确保异步模块的样式文件也能正确拆分到指定目录
120
+ - 修改 `runtime.js` 输出,确保异步模块的`js`文件能通过`require.async`正确引入
151
121
 
152
- 3. **样式处理**:
122
+ 2. **样式处理**:
153
123
  - 为每个异步分包生成样式组件
154
- - 自动收集该分包下的所有样式文件并通过 `@import` 引入
155
- - 确保异步模块的样式在组件加载时同步加载
124
+ - 自动收集该分包下的所有样式文件并通过 `@import` 引入主包`app.wxss`同步引入
156
125
 
157
- 4. **小程序配置修改**:
126
+ 3. **小程序配置修改**:
158
127
  - 自动修改 `app.json`,添加异步分包配置
159
- - 添加异步组件到全局 `usingComponents`
160
- - 设置 `componentPlaceholder` 以优化渲染性能
161
- - 更新页面 `WXML` 文件,在每个页面中自动添加样式组件引用
162
128
 
163
129
  ## ⚠️ 注意事项
164
130
 
@@ -168,6 +134,7 @@ const AsyncComponent = defineAsyncComponent(() => import('./async-component')
168
134
  4. **Webpack 版本**:仅支持 Webpack 5 编译器
169
135
  5. **自动转换**:插件会自动转换所有 `React.lazy` 调用,无需手动使用 `@taro-minify-pack/react-lazy-enhanced` 包中的懒加载函数
170
136
  6. **分包数量**:根据项目实际情况配置 `dynamicPackageCount`,过多的分包可能会影响性能
137
+ 7. **版本要求**:插件版本`0.0.5-alpha.x`尝试实现样式文件异步加载受微信机制影响存在无法优化的「闪屏样式丢失」,故`0.0.5`及以后版本不支持样式文件异步加载。
171
138
 
172
139
  ## 🔧 配置选项
173
140
 
package/dist/index.js CHANGED
@@ -1,19 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const fs_1 = __importDefault(require("fs"));
7
- const path_1 = __importDefault(require("path"));
8
- const webpack_sources_1 = require("webpack-sources");
9
3
  const transform_webpack_runtime_1 = require("./transform-webpack-runtime");
10
4
  const transform_before_compression_plugin_1 = require("./transform-before-compression-plugin");
11
- const inject_style_component_1 = require("./inject-style-component");
12
5
  const transform_app_config_1 = require("./transform-app-config");
13
- const transform_pages_wxml_1 = require("./transform-pages-wxml");
14
6
  const utils_1 = require("./utils");
7
+ const transform_app_stylesheet_1 = require("./transform-app-stylesheet");
8
+ const merge_output_1 = require("./merge-output");
15
9
  const dynamicPackOptsDefaultOpt = {
16
- framework: 'react',
17
10
  dynamicPackageNamePrefix: 'dynamic-common',
18
11
  dynamicPackageCount: 1
19
12
  };
@@ -48,52 +41,28 @@ exports.default = (ctx, pluginOpts) => {
48
41
  const chunkFilename = (pathData) => generateChunkFilename(pathData, '.wxss');
49
42
  return [Object.assign(Object.assign({}, options), { chunkFilename })];
50
43
  });
51
- chain.module
52
- .rule('script')
53
- .use('babelLoader')
54
- .tap((opts) => {
55
- const plugin = path_1.default.resolve(__dirname, './transform-specifier-with-source');
56
- if (finalOpts.framework === 'react') {
57
- const original = { source: 'react', specifier: 'lazy' };
58
- const transformed = { source: '@taro-minify-pack/react-lazy-enhanced', specifier: 'lazyEnhanced' };
59
- return Object.assign(Object.assign({}, opts), { plugins: [[plugin, { original, transformed }], ...(opts.plugins || [])] });
60
- }
61
- if (finalOpts.framework === 'vue') {
62
- const original = { source: 'vue', specifier: 'defineAsyncComponent' };
63
- const transformed = { source: '@taro-minify-pack/vue-lazy-enhanced', specifier: 'defineAsyncComponentEnhanced' };
64
- return Object.assign(Object.assign({}, opts), { plugins: [[plugin, { original, transformed }], ...(opts.plugins || [])] });
65
- }
66
- return opts;
67
- });
68
44
  chain.plugin(transform_before_compression_plugin_1.PLUGIN_NAME).use(transform_before_compression_plugin_1.TransformBeforeCompressionPlugin, [{
69
- test: /^(runtime\.js)$/,
45
+ test: /^(runtime\.js|app\.wxss)$/,
70
46
  transform: (opt) => {
71
- const { source, assets } = opt;
47
+ const { source, assetName, assets } = opt;
72
48
  const transformOpts = Object.assign(Object.assign({}, finalOpts), { assets });
73
- return (0, transform_webpack_runtime_1.transformWebpackRuntime)(source, transformOpts);
49
+ if (/^app\.wxss$/.test(assetName))
50
+ return (0, transform_app_stylesheet_1.transformAppStylesheet)(source, transformOpts);
51
+ if (/^runtime\.js$/.test(assetName))
52
+ return (0, transform_webpack_runtime_1.transformWebpackRuntime)(source, transformOpts);
53
+ return source;
74
54
  }
75
55
  }]);
76
- chain.plugin(inject_style_component_1.PLUGIN_NAME).use(inject_style_component_1.InjectStyleComponentPlugin, [finalOpts]);
56
+ chain.plugin(merge_output_1.PLUGIN_NAME).use(merge_output_1.MergeOutputPlugin, [{
57
+ test: (assetName) => (0, utils_1.isDynamicPackageWXssAsset)(finalOpts.dynamicPackageNamePrefix, assetName),
58
+ outputFile: `${finalOpts.dynamicPackageNamePrefix}.wxss`
59
+ }]);
77
60
  });
78
61
  ctx.modifyBuildAssets(({ assets }) => {
79
62
  const hasDynamicModule = Object.keys(assets).some((key) => (0, utils_1.isDynamicPackageName)(finalOpts.dynamicPackageNamePrefix, key));
80
63
  if (!hasDynamicModule)
81
64
  return;
82
- const asyncComponents = (() => {
83
- if (finalOpts.dynamicPackageCount <= 1) {
84
- return { [inject_style_component_1.InjectStyleComponentName]: `${(0, utils_1.generateDynamicPackageName)(finalOpts)}/${inject_style_component_1.InjectStyleComponentName}` };
85
- }
86
- return new Array(finalOpts.dynamicPackageCount).fill(null).reduce((result, _, order) => {
87
- const dynamicPackageName = (0, utils_1.generateDynamicPackageName)(Object.assign(Object.assign({}, finalOpts), { order }));
88
- const componentName = `${inject_style_component_1.InjectStyleComponentName}-${(0, utils_1.generateKeyByOrder)(order)}`;
89
- return Object.assign(Object.assign({}, result), { [componentName]: `${dynamicPackageName}/${inject_style_component_1.InjectStyleComponentName}` });
90
- }, {});
91
- })();
92
- const filePath = path_1.default.resolve(__dirname, './singleton-promise.js');
93
- const fileContent = fs_1.default.readFileSync(filePath, { encoding: 'utf-8' });
94
- assets['singleton-promise.js'] = new webpack_sources_1.RawSource(fileContent);
95
- (0, transform_app_config_1.transformAppConfig)(Object.assign(Object.assign({}, finalOpts), { assets, asyncComponents }));
96
- (0, transform_pages_wxml_1.transformPagesWXml)({ assets, asyncComponents });
65
+ (0, transform_app_config_1.transformAppConfig)(Object.assign(Object.assign({}, finalOpts), { assets }));
97
66
  });
98
67
  };
99
68
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Compiler } from 'webpack';
2
+ export declare const PLUGIN_NAME = "MergeOutput";
3
+ interface MergeOutputOpt {
4
+ test: (assetName: string) => boolean;
5
+ outputFile: string;
6
+ }
7
+ export declare class MergeOutputPlugin {
8
+ private readonly opts;
9
+ constructor(opts: MergeOutputOpt);
10
+ apply(compiler: Compiler): void;
11
+ }
12
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MergeOutputPlugin = exports.PLUGIN_NAME = void 0;
4
+ exports.PLUGIN_NAME = 'MergeOutput';
5
+ class MergeOutputPlugin {
6
+ constructor(opts) {
7
+ this.opts = opts;
8
+ }
9
+ apply(compiler) {
10
+ compiler.hooks.compilation.tap(exports.PLUGIN_NAME, (compilation) => {
11
+ const stage = compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL; // 最早阶段,在优化前
12
+ compilation.hooks.processAssets.tap({ name: exports.PLUGIN_NAME, stage }, (assets) => {
13
+ const mergedResult = Object.keys(assets).reduce((result, item) => {
14
+ if (!this.opts.test(item))
15
+ return result;
16
+ const code = assets[item].source().toString();
17
+ delete assets[item];
18
+ return result + code + '\n';
19
+ }, '');
20
+ compilation.assets[this.opts.outputFile] = new compiler.webpack.sources.RawSource(mergedResult);
21
+ });
22
+ });
23
+ }
24
+ }
25
+ exports.MergeOutputPlugin = MergeOutputPlugin;
26
+ //# sourceMappingURL=merge-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-output.js","sourceRoot":"","sources":["../src/merge-output.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAG,aAAa,CAAA;AAOxC,MAAa,iBAAiB;IAG5B,YAAa,IAAoB;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,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,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;oBAC/D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,OAAO,MAAM,CAAA;oBACxC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAA;oBAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;oBACnB,OAAO,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;gBAC7B,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEN,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YAClG,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAvBD,8CAuBC"}
@@ -2,7 +2,6 @@ import type { AsyncPackOpts } from './types';
2
2
  import { RawSource } from 'webpack-sources';
3
3
  interface Opts extends AsyncPackOpts {
4
4
  assets: Record<string, RawSource>;
5
- asyncComponents: Record<string, string>;
6
5
  }
7
6
  export declare const transformAppConfig: (opts: Opts) => void;
8
7
  export {};
@@ -16,17 +16,14 @@ const webpack_sources_1 = require("webpack-sources");
16
16
  const utils_1 = require("./utils");
17
17
  const appConfigAssetKey = 'app.json';
18
18
  const transformAppConfig = (opts) => {
19
- const { dynamicPackageCount, asyncComponents, assets } = opts;
19
+ const { dynamicPackageCount, assets } = opts;
20
20
  const curAppConfig = JSON.parse(assets[appConfigAssetKey].source());
21
21
  const { subPackages, subpackages, resolveAlias = {}, usingComponents = {}, componentPlaceholder = {} } = curAppConfig, otherAppJSON = __rest(curAppConfig, ["subPackages", "subpackages", "resolveAlias", "usingComponents", "componentPlaceholder"]);
22
22
  const finalSubPackages = subPackages || subpackages || [];
23
23
  const dynamicPackagesConfigs = new Array(dynamicPackageCount).fill(null).map((_, order) => {
24
24
  return { root: (0, utils_1.generateDynamicPackageName)(Object.assign(Object.assign({}, opts), { order })), pages: [] };
25
25
  });
26
- const asyncComponentPlaceholder = Object.keys(asyncComponents).reduce((result, item) => {
27
- return Object.assign(Object.assign({}, result), { [item]: 'block' });
28
- }, {});
29
- const finalAppConfig = Object.assign(Object.assign({}, otherAppJSON), { usingComponents: Object.assign(Object.assign({}, usingComponents), asyncComponents), componentPlaceholder: Object.assign(Object.assign({}, componentPlaceholder), asyncComponentPlaceholder), subPackages: [...finalSubPackages, ...dynamicPackagesConfigs], resolveAlias: Object.assign(Object.assign({}, resolveAlias), { '~/*': '/*' }) });
26
+ const finalAppConfig = Object.assign(Object.assign({}, otherAppJSON), { subPackages: [...finalSubPackages, ...dynamicPackagesConfigs], resolveAlias: Object.assign(Object.assign({}, resolveAlias), { '~/*': '/*' }) });
30
27
  assets[appConfigAssetKey] = new webpack_sources_1.RawSource(JSON.stringify(finalAppConfig));
31
28
  };
32
29
  exports.transformAppConfig = transformAppConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"transform-app-config.js","sourceRoot":"","sources":["../src/transform-app-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,qDAA2C;AAC3C,mCAAoD;AAOpD,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAE7B,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC/C,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAE7D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAY,CAAC,CAAA;IAE7E,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,oBAAoB,GAAG,EAAE,KAAsB,YAAY,EAA7B,YAAY,UAAK,YAAY,EAAhI,yFAAiH,CAAe,CAAA;IAEtI,MAAM,gBAAgB,GAAG,WAAW,IAAI,WAAW,IAAI,EAAE,CAAA;IAEzD,MAAM,sBAAsB,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACxF,OAAO,EAAE,IAAI,EAAE,IAAA,kCAA0B,kCAAM,IAAI,KAAE,KAAK,IAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACrF,uCAAY,MAAM,KAAE,CAAC,IAAI,CAAC,EAAE,OAAO,IAAE;IACvC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,cAAc,mCACf,YAAY,KACf,eAAe,kCAAO,eAAe,GAAK,eAAe,GACzD,oBAAoB,kCAAO,oBAAoB,GAAK,yBAAyB,GAC7E,WAAW,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,EAC7D,YAAY,kCAAO,YAAY,KAAE,KAAK,EAAE,IAAI,MAC7C,CAAA;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,2BAAS,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAA;AAC3E,CAAC,CAAA;AA1BY,QAAA,kBAAkB,sBA0B9B"}
1
+ {"version":3,"file":"transform-app-config.js","sourceRoot":"","sources":["../src/transform-app-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,qDAA2C;AAC3C,mCAAoD;AAMpD,MAAM,iBAAiB,GAAG,UAAU,CAAA;AAE7B,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC/C,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAE5C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAY,CAAC,CAAA;IAE7E,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,oBAAoB,GAAG,EAAE,KAAsB,YAAY,EAA7B,YAAY,UAAK,YAAY,EAAhI,yFAAiH,CAAe,CAAA;IAEtI,MAAM,gBAAgB,GAAG,WAAW,IAAI,WAAW,IAAI,EAAE,CAAA;IAEzD,MAAM,sBAAsB,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACxF,OAAO,EAAE,IAAI,EAAE,IAAA,kCAA0B,kCAAM,IAAI,KAAE,KAAK,IAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,MAAM,cAAc,mCACf,YAAY,KACf,WAAW,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,EAC7D,YAAY,kCAAO,YAAY,KAAE,KAAK,EAAE,IAAI,MAC7C,CAAA;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,2BAAS,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAA;AAC3E,CAAC,CAAA;AApBY,QAAA,kBAAkB,sBAoB9B"}
@@ -0,0 +1,6 @@
1
+ import type { CompilationAssets, AsyncPackOpts } from './types';
2
+ interface Opts extends AsyncPackOpts {
3
+ assets: CompilationAssets;
4
+ }
5
+ export declare const transformAppStylesheet: (code: string, opts: Opts) => string;
6
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformAppStylesheet = void 0;
4
+ const transformAppStylesheet = (code, opts) => {
5
+ const { dynamicPackageNamePrefix, assets } = opts;
6
+ const isDynamicModuleStyleFileExist = Object.keys(assets).some(assetName => {
7
+ return new RegExp(`${dynamicPackageNamePrefix}\\.wxss`).test(assetName);
8
+ });
9
+ if (!isDynamicModuleStyleFileExist)
10
+ return code;
11
+ return code.concat(`@import './${dynamicPackageNamePrefix}.wxss';`);
12
+ };
13
+ exports.transformAppStylesheet = transformAppStylesheet;
14
+ //# sourceMappingURL=transform-app-stylesheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-app-stylesheet.js","sourceRoot":"","sources":["../src/transform-app-stylesheet.ts"],"names":[],"mappings":";;;AAMO,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAE,IAAU,EAAE,EAAE;IACjE,MAAM,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAEjD,MAAM,6BAA6B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACzE,OAAO,IAAI,MAAM,CAAC,GAAG,wBAAwB,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,6BAA6B;QAAE,OAAO,IAAI,CAAA;IAE/C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,wBAAwB,SAAS,CAAC,CAAA;AACrE,CAAC,CAAA;AAVY,QAAA,sBAAsB,0BAUlC"}
@@ -115,20 +115,11 @@ const replaceWebpackLoadScriptFn = (assignmentExpressionNodePath, opts) => {
115
115
  };
116
116
  const webpackLoadDynamicStylesheetTemplate = `
117
117
  !function () {
118
- var loadStylesheet = function (chunkId) {
119
- const href = __webpack_require__.miniCssF(chunkId);
120
- const fullHref = __webpack_require__.p + href;
121
- const dynamicPackageNameRegex = DYNAMIC_PACKAGE_NAME_REGEX;
122
- const [,dynamicPackageName] = fullHref.match(dynamicPackageNameRegex) || [];
123
- const { SingletonPromise } = require('~/singleton-promise.js');
124
- return SingletonPromise.wait({ dynamicPackageName })
118
+ var loadStylesheet = function (_chunkId) {
119
+ return Promise.resolve()
125
120
  }
126
- var installedCssChunks = INSTALLED_CSS_CHUNKS;
127
121
  __webpack_require__.f.miniCss = function (dynamicStylesheetChunkId, promises) {
128
- var cssChunks = CSS_CHUNKS;
129
- if (installedCssChunks[dynamicStylesheetChunkId] !== 0 && cssChunks[dynamicStylesheetChunkId]) {
130
- promises.push(loadStylesheet(dynamicStylesheetChunkId));
131
- }
122
+ promises.push(loadStylesheet(dynamicStylesheetChunkId));
132
123
  };
133
124
  }();
134
125
  `;
@@ -156,38 +147,9 @@ const replaceWebpackLoadDynamicModuleStylesheetFn = (path, opts) => {
156
147
  });
157
148
  if (!needProcessed)
158
149
  return;
159
- const installedCssChunksValueAst = [];
160
- const cssChunksValueAst = [];
161
- path.traverse({
162
- VariableDeclarator: (nodePath) => {
163
- const { id, init } = nodePath.node || {};
164
- if (!types.isObjectExpression(init))
165
- return;
166
- if (types.isIdentifier(id, { name: 'cssChunks' }))
167
- cssChunksValueAst.push(...init.properties);
168
- if (types.isIdentifier(id, { name: 'installedCssChunks' }))
169
- installedCssChunksValueAst.push(...init.properties);
170
- }
171
- });
172
- const { dynamicPackageNamePrefix } = opts;
173
- const DYNAMIC_PACKAGE_NAME_REGEX = types.regExpLiteral(`(${dynamicPackageNamePrefix}(?:-[a-z]{2})?)\\/`);
174
- const INSTALLED_CSS_CHUNKS = types.objectExpression(installedCssChunksValueAst);
175
- const CSS_CHUNKS = types.objectExpression(cssChunksValueAst);
176
- const templateCodeAst = core_1.template.statement(webpackLoadDynamicStylesheetTemplate)({ CSS_CHUNKS, DYNAMIC_PACKAGE_NAME_REGEX, INSTALLED_CSS_CHUNKS });
150
+ const templateCodeAst = core_1.template.ast(webpackLoadDynamicStylesheetTemplate);
177
151
  path.parentPath.replaceWith(templateCodeAst);
178
152
  };
179
- const removeCreateStylesheetFn = (nodePath) => {
180
- const { id } = nodePath.node || {};
181
- if (!types.isIdentifier(id, { name: 'createStylesheet' }))
182
- return;
183
- nodePath.remove();
184
- };
185
- const removeFindStylesheetFn = (nodePath) => {
186
- const { id } = nodePath.node || {};
187
- if (!types.isIdentifier(id, { name: 'findStylesheet' }))
188
- return;
189
- nodePath.remove();
190
- };
191
153
  const transformWebpackRuntime = (code, opts) => {
192
154
  const ast = parser.parse(code); // 将代码解析为 AST
193
155
  (0, traverse_1.default)(ast, {
@@ -196,10 +158,6 @@ const transformWebpackRuntime = (code, opts) => {
196
158
  },
197
159
  AssignmentExpression: (nodePath) => {
198
160
  replaceWebpackLoadScriptFn(nodePath, opts);
199
- },
200
- VariableDeclarator(nodePath) {
201
- removeCreateStylesheetFn(nodePath);
202
- removeFindStylesheetFn(nodePath);
203
161
  }
204
162
  });
205
163
  return (0, generator_1.default)(ast).code;
@@ -1 +1 @@
1
- {"version":3,"file":"transform-webpack-runtime.js","sourceRoot":"","sources":["../src/transform-webpack-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform-webpack-runtime.js","sourceRoot":"","sources":["../src/transform-webpack-runtime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAgD;AAChD,iEAAwC;AACxC,sDAAuC;AACvC,+DAAsC;AACtC,oDAAqC;AAMrC,mCAAiD;AAMjD,MAAM,mCAAmC,GAAG;;;;;;;;;;;;;;;;;CAiB3C,CAAA;AAED,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;CAmBxC,CAAA;AAED,MAAM,0BAA0B,GAAG,CAAC,4BAA4D,EAAE,IAAU,EAAE,EAAE;IAC9G,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,4BAA4B,CAAC,IAAI,IAAI,EAAE,CAAA;IAE/D,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAAE,OAAM;IAE3C,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAM;IAE9C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;QAAE,OAAM;IAE7E,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAE,OAAM;IAE7D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7C,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAI,WAAW;QAAE,OAAM;IAEvB,MAAM,EAAE,MAAM,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAA;IAEjD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/D,OAAO,IAAA,+BAAuB,EAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE;QACvC,MAAM,4BAA4B,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;YAC1E,OAAO,KAAK,cAAc,0CAA0C,cAAc,OAAO,CAAA;QAC3F,CAAC,CAAC,CAAA;QAEF,OAAO,iCAAiC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACnF,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,eAAe,GAAG,eAAQ,CAAC,GAAG,CAAC,gCAAgC,CAAc,CAAA;IAEnF,MAAM,yBAAyB,GAAG,eAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IAE1E,MAAM,kBAAkB,GAAG,eAAQ,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;IAE5E,4BAA4B,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;IAEzD,4BAA4B,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAA;IAEpE,4BAA4B,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,oCAAoC,GAAG;;;;;;;;;CAS5C,CAAA;AAED,MAAM,2CAA2C,GAAG,CAAC,IAA+B,EAAE,IAAU,EAAE,EAAE;IAClG,IAAI,aAAa,GAAG,KAAK,CAAA;IAEzB,IAAI,CAAC,QAAQ,CAAC;QACZ,oBAAoB,EAAE,CAAC,QAAwC,EAAE,EAAE;YACjE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAA;YAE3C,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAAE,OAAM;YAE3C,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBAAE,OAAM;YAE9C,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAM;YAElD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;gBAAE,OAAM;YAEpF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;gBAAE,OAAM;YAEpE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAAE,OAAM;YAEnE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAAE,OAAM;YAEvG,aAAa,GAAG,IAAI,CAAA;QACtB,CAAC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa;QAAE,OAAM;IAE1B,MAAM,eAAe,GAAG,eAAQ,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;IAE1E,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,eAA4B,CAAC,CAAA;AAC3D,CAAC,CAAA;AAEM,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,IAAU,EAAE,EAAE;IAClE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAC,aAAa;IAC5C,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACZ,eAAe,EAAE,CAAC,QAAmC,EAAE,EAAE;YACvD,2CAA2C,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC7D,CAAC;QACD,oBAAoB,EAAE,CAAC,QAAwC,EAAE,EAAE;YACjE,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC;KACF,CAAC,CAAA;IACF,OAAO,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAC5B,CAAC,CAAA;AAXY,QAAA,uBAAuB,2BAWnC"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { Source } from 'webpack-sources';
2
2
  export interface AsyncPackOpts {
3
- framework: 'react' | 'vue';
4
3
  dynamicPackageNamePrefix: string;
5
4
  dynamicPackageCount: number;
6
5
  }
package/dist/utils.d.ts CHANGED
@@ -5,10 +5,6 @@ export declare const isNumber: (val: any) => boolean;
5
5
  export declare const isDynamicPackageName: (prefix: string, packageName: string) => boolean;
6
6
  export declare const isDynamicPackageJsAsset: (prefix: string, assetName: string) => boolean;
7
7
  export declare const isDynamicPackageWXssAsset: (prefix: string, assetName: string) => boolean;
8
- export declare const isDynamicPackageWXssAssetWithOrder: (opt: AsyncPackOpts & {
9
- order?: number;
10
- }, assetName: string) => boolean;
11
8
  export declare const generateDynamicPackageName: (opt: AsyncPackOpts & {
12
9
  order?: number;
13
10
  }) => string;
14
- export declare const normalizeFileName: (fileName: string) => string;
package/dist/utils.js CHANGED
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
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"));
3
+ exports.generateDynamicPackageName = exports.isDynamicPackageWXssAsset = exports.isDynamicPackageJsAsset = exports.isDynamicPackageName = exports.isNumber = exports.hashModBigInt = exports.generateKeyByOrder = void 0;
8
4
  const generateKeyByOrder = (order) => {
9
5
  const startStr = 'a'.charCodeAt(0);
10
6
  const firstLetter = String.fromCharCode(startStr + Math.floor(order / 26));
@@ -37,20 +33,10 @@ const isDynamicPackageWXssAsset = (prefix, assetName) => {
37
33
  return dynamicWXssAssetRegExp.test(assetName);
38
34
  };
39
35
  exports.isDynamicPackageWXssAsset = isDynamicPackageWXssAsset;
40
- const isDynamicPackageWXssAssetWithOrder = (opt, assetName) => {
41
- if (!(0, exports.isNumber)(opt.order) || opt.dynamicPackageCount <= 1)
42
- return (0, exports.isDynamicPackageWXssAsset)(opt.dynamicPackageNamePrefix, assetName);
43
- return new RegExp(`^${opt.dynamicPackageNamePrefix}-${(0, exports.generateKeyByOrder)(opt.order)}\\/.*\\.wxss$`).test(assetName);
44
- };
45
- exports.isDynamicPackageWXssAssetWithOrder = isDynamicPackageWXssAssetWithOrder;
46
36
  const generateDynamicPackageName = (opt) => {
47
37
  if (!(0, exports.isNumber)(opt.order) || opt.dynamicPackageCount <= 1)
48
38
  return opt.dynamicPackageNamePrefix;
49
39
  return `${opt.dynamicPackageNamePrefix}-${(0, exports.generateKeyByOrder)(opt.order)}`;
50
40
  };
51
41
  exports.generateDynamicPackageName = generateDynamicPackageName;
52
- const normalizeFileName = (fileName) => {
53
- return path_1.default.normalize(fileName).replace(/\\/g, '/');
54
- };
55
- exports.normalizeFileName = normalizeFileName;
56
42
  //# 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":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEO,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;IAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAClC,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAA;IAC1E,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK,GAAG,EAAE,CAAC,CAAA;IAC/D,OAAO,GAAG,WAAW,GAAG,YAAY,EAAE,CAAA;AACxC,CAAC,CAAA;AALY,QAAA,kBAAkB,sBAK9B;AAEM,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAA;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAClD,CAAC,CAAA;AAHY,QAAA,aAAa,iBAGzB;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAE,EAAE;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AACxD,CAAC,CAAA;AAFY,QAAA,QAAQ,YAEpB;AAEM,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,WAAmB,EAAE,EAAE;IAC1E,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,IAAI,MAAM,iBAAiB,CAAC,CAAA;IACnE,OAAO,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC9C,CAAC,CAAA;AAHY,QAAA,oBAAoB,wBAGhC;AAEM,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,EAAE;IAC3E,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,IAAI,MAAM,2BAA2B,CAAC,CAAA;IAC9E,OAAO,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC7C,CAAC,CAAA;AAHY,QAAA,uBAAuB,2BAGnC;AAEM,MAAM,yBAAyB,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,EAAE;IAC7E,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,IAAI,MAAM,6BAA6B,CAAC,CAAA;IAClF,OAAO,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC,CAAA;AAHY,QAAA,yBAAyB,6BAGrC;AAEM,MAAM,0BAA0B,GAAG,CAAC,GAAuC,EAAE,EAAE;IACpF,IAAI,CAAC,IAAA,gBAAQ,EAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,mBAAmB,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,wBAAwB,CAAA;IAC7F,OAAO,GAAG,GAAG,CAAC,wBAAwB,IAAI,IAAA,0BAAkB,EAAC,GAAG,CAAC,KAAM,CAAC,EAAE,CAAA;AAC5E,CAAC,CAAA;AAHY,QAAA,0BAA0B,8BAGtC"}
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.7",
3
+ "version": "0.0.5",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -14,10 +14,6 @@
14
14
  },
15
15
  "author": "yu.pan",
16
16
  "license": "MIT",
17
- "peerDependencies": {
18
- "@taro-minify-pack/react-lazy-enhanced": "0.0.5-alpha.7",
19
- "@taro-minify-pack/vue-lazy-enhanced": "0.0.5-alpha.7"
20
- },
21
17
  "dependencies": {
22
18
  "@babel/core": "^7.26.10",
23
19
  "@babel/generator": "^7.26.10",
package/src/index.ts CHANGED
@@ -1,20 +1,16 @@
1
1
  import type { IPluginContext } from '@tarojs/service'
2
2
  import type { PathData } from 'webpack'
3
- import fs from 'fs'
4
- import path from 'path'
5
- import { RawSource } from 'webpack-sources'
6
3
  import { transformWebpackRuntime } from './transform-webpack-runtime'
7
4
  import { TransformOpt, TransformBeforeCompressionPlugin, PLUGIN_NAME as TransformBeforeCompressionPluginName } from './transform-before-compression-plugin'
8
- import { InjectStyleComponentPlugin, PLUGIN_NAME as InjectStyleComponentPluginName, InjectStyleComponentName } from './inject-style-component'
9
5
  import { transformAppConfig } from './transform-app-config'
10
- import { transformPagesWXml } from './transform-pages-wxml'
11
- import { generateDynamicPackageName, generateKeyByOrder, hashModBigInt, isDynamicPackageName } from './utils'
6
+ import { generateDynamicPackageName, hashModBigInt, isDynamicPackageName, isDynamicPackageWXssAsset } from './utils'
12
7
  import { AsyncPackOpts } from './types'
8
+ import { transformAppStylesheet } from './transform-app-stylesheet'
9
+ import { MergeOutputPlugin, PLUGIN_NAME as MergeOutputPluginName } from './merge-output'
13
10
 
14
11
  export { AsyncPackOpts } from './types'
15
12
 
16
13
  const dynamicPackOptsDefaultOpt: AsyncPackOpts = {
17
- framework: 'react',
18
14
  dynamicPackageNamePrefix: 'dynamic-common',
19
15
  dynamicPackageCount: 1
20
16
  }
@@ -66,37 +62,21 @@ export default (ctx: IPluginContext, pluginOpts: AsyncPackOpts) => {
66
62
  return [{ ...options, chunkFilename }]
67
63
  })
68
64
 
69
- chain.module
70
- .rule('script')
71
- .use('babelLoader')
72
- .tap((opts) => {
73
- const plugin = path.resolve(__dirname, './transform-specifier-with-source')
74
-
75
- if (finalOpts.framework === 'react') {
76
- const original = { source: 'react', specifier: 'lazy' }
77
- const transformed = { source: '@taro-minify-pack/react-lazy-enhanced', specifier: 'lazyEnhanced' }
78
- return { ...opts, plugins: [[plugin, { original, transformed }], ...(opts.plugins || [])] }
79
- }
80
-
81
- if (finalOpts.framework === 'vue') {
82
- const original = { source: 'vue', specifier: 'defineAsyncComponent' }
83
- const transformed = { source: '@taro-minify-pack/vue-lazy-enhanced', specifier: 'defineAsyncComponentEnhanced' }
84
- return { ...opts, plugins: [[plugin, { original, transformed }], ...(opts.plugins || [])] }
85
- }
86
-
87
- return opts
88
- })
89
-
90
65
  chain.plugin(TransformBeforeCompressionPluginName).use(TransformBeforeCompressionPlugin, [{
91
- test: /^(runtime\.js)$/,
66
+ test: /^(runtime\.js|app\.wxss)$/,
92
67
  transform: (opt: TransformOpt) => {
93
- const { source, assets } = opt
68
+ const { source, assetName, assets } = opt
94
69
  const transformOpts = { ...finalOpts, assets }
95
- return transformWebpackRuntime(source as string, transformOpts)
70
+ if (/^app\.wxss$/.test(assetName)) return transformAppStylesheet(source as string, transformOpts)
71
+ if (/^runtime\.js$/.test(assetName)) return transformWebpackRuntime(source as string, transformOpts)
72
+ return source as string
96
73
  }
97
74
  }])
98
75
 
99
- chain.plugin(InjectStyleComponentPluginName).use(InjectStyleComponentPlugin, [finalOpts])
76
+ chain.plugin(MergeOutputPluginName).use(MergeOutputPlugin, [{
77
+ test: (assetName: string) => isDynamicPackageWXssAsset(finalOpts.dynamicPackageNamePrefix, assetName),
78
+ outputFile: `${finalOpts.dynamicPackageNamePrefix}.wxss`
79
+ }])
100
80
  })
101
81
 
102
82
  ctx.modifyBuildAssets(({ assets }) => {
@@ -104,23 +84,6 @@ export default (ctx: IPluginContext, pluginOpts: AsyncPackOpts) => {
104
84
 
105
85
  if (!hasDynamicModule) return
106
86
 
107
- const asyncComponents = (() => {
108
- if (finalOpts.dynamicPackageCount <= 1) { return { [InjectStyleComponentName]: `${generateDynamicPackageName(finalOpts)}/${InjectStyleComponentName}` } }
109
- return new Array(finalOpts.dynamicPackageCount).fill(null).reduce((result, _, order) => {
110
- const dynamicPackageName = generateDynamicPackageName({ ...finalOpts, order })
111
- const componentName = `${InjectStyleComponentName}-${generateKeyByOrder(order)}`
112
- return { ...result, [componentName]: `${dynamicPackageName}/${InjectStyleComponentName}` }
113
- }, {})
114
- })()
115
-
116
- const filePath = path.resolve(__dirname, './singleton-promise.js')
117
-
118
- const fileContent = fs.readFileSync(filePath, { encoding: 'utf-8' })
119
-
120
- assets['singleton-promise.js'] = new RawSource(fileContent)
121
-
122
- transformAppConfig({ ...finalOpts, assets, asyncComponents })
123
-
124
- transformPagesWXml({ assets, asyncComponents })
87
+ transformAppConfig({ ...finalOpts, assets })
125
88
  })
126
89
  }