@tarojs/plugin-framework-react 4.0.0-canary.11 → 4.0.0-canary.12
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/LICENSE +8 -8
- package/dist/index.js +27 -185
- package/dist/index.js.map +1 -1
- package/dist/runtime.js +84 -283
- package/dist/runtime.js.map +1 -1
- package/package.json +31 -36
- package/dist/reconciler.js +0 -347
- package/dist/reconciler.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -154,15 +154,8 @@ See `/LICENSE` for details of the license.
|
|
|
154
154
|
|
|
155
155
|
==================
|
|
156
156
|
|
|
157
|
-
MIT (stencil-vue2-output-target):
|
|
158
|
-
The following files embed [stencil-vue2-output-target](https://github.com/diondree/stencil-vue2-output-target) MIT:
|
|
159
|
-
`/packages/taro-components-library-vue2/src/vue-component-lib/utils.ts`
|
|
160
|
-
See `/LICENSE` for details of the license.
|
|
161
|
-
|
|
162
|
-
==================
|
|
163
|
-
|
|
164
157
|
MIT (weui):
|
|
165
|
-
The following files embed [
|
|
158
|
+
The following files embed [weui](https://github.com/Tencent/weui) MIT:
|
|
166
159
|
`/packages/taro-components/src/components/*.scss`
|
|
167
160
|
See `/LICENSE.txt` for details of the license.
|
|
168
161
|
|
|
@@ -172,3 +165,10 @@ Apache-2.0 (intersection-observer):
|
|
|
172
165
|
The following files embed [intersection-observer](https://github.com/GoogleChromeLabs/intersection-observer) Apache-2.0:
|
|
173
166
|
`/packages/taro-api/src/polyfill/intersection-observer.ts`
|
|
174
167
|
See `/LICENSE.txt` for details of the license.
|
|
168
|
+
|
|
169
|
+
==================
|
|
170
|
+
|
|
171
|
+
MIT (babel-plugin-jsx-dom-expressions):
|
|
172
|
+
The following files embed [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/blob/main/packages/babel-plugin-jsx-dom-expressions) MIT:
|
|
173
|
+
`/packages/babel-plugin-transform-solid-jsx/src/*`
|
|
174
|
+
See `/LICENSE` for details of the license.
|
package/dist/index.js
CHANGED
|
@@ -4,63 +4,32 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var helper = require('@tarojs/helper');
|
|
6
6
|
var shared = require('@tarojs/shared');
|
|
7
|
+
var tslib = require('tslib');
|
|
7
8
|
var lodash = require('lodash');
|
|
8
9
|
var acorn = require('acorn');
|
|
9
10
|
var walk = require('acorn-walk');
|
|
10
11
|
var path = require('node:path');
|
|
11
12
|
|
|
12
13
|
function _interopNamespaceDefault(e) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
}
|
|
14
|
+
var n = Object.create(null);
|
|
15
|
+
if (e) {
|
|
16
|
+
Object.keys(e).forEach(function (k) {
|
|
17
|
+
if (k !== 'default') {
|
|
18
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
19
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return e[k]; }
|
|
23
22
|
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
n.default = e;
|
|
27
|
+
return Object.freeze(n);
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
var acorn__namespace = /*#__PURE__*/_interopNamespaceDefault(acorn);
|
|
30
31
|
var walk__namespace = /*#__PURE__*/_interopNamespaceDefault(walk);
|
|
31
32
|
|
|
32
|
-
/******************************************************************************
|
|
33
|
-
Copyright (c) Microsoft Corporation.
|
|
34
|
-
|
|
35
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
36
|
-
purpose with or without fee is hereby granted.
|
|
37
|
-
|
|
38
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
39
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
40
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
41
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
42
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
43
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
44
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
45
|
-
***************************************************************************** */
|
|
46
|
-
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
50
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
51
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
52
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
53
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
54
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
55
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
60
|
-
var e = new Error(message);
|
|
61
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
33
|
function apiLoader (str) {
|
|
65
34
|
return `import {
|
|
66
35
|
useAddToFavorites,
|
|
@@ -192,20 +161,6 @@ function addConfig(source) {
|
|
|
192
161
|
});
|
|
193
162
|
return additionConfig;
|
|
194
163
|
}
|
|
195
|
-
const nervMeta = {
|
|
196
|
-
importFrameworkStatement: `
|
|
197
|
-
import Nerv from 'nervjs';
|
|
198
|
-
`,
|
|
199
|
-
mockAppStatement: `
|
|
200
|
-
class App extends Nerv.Component {
|
|
201
|
-
render () {
|
|
202
|
-
return this.props.children
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
`,
|
|
206
|
-
frameworkArgs: 'Nerv, Nerv, config',
|
|
207
|
-
importFrameworkName: 'Nerv'
|
|
208
|
-
};
|
|
209
164
|
function getLoaderMeta(framework) {
|
|
210
165
|
const loaderMeta = {
|
|
211
166
|
importFrameworkStatement: `
|
|
@@ -229,22 +184,6 @@ class App extends React.Component {
|
|
|
229
184
|
Object.assign(config, addConfig(source));
|
|
230
185
|
}
|
|
231
186
|
};
|
|
232
|
-
if (framework === 'nerv') {
|
|
233
|
-
Object.assign(loaderMeta, nervMeta);
|
|
234
|
-
}
|
|
235
|
-
if (framework === 'solid') {
|
|
236
|
-
Object.assign(loaderMeta, {
|
|
237
|
-
creator: 'createSolidApp',
|
|
238
|
-
frameworkArgs: 'config',
|
|
239
|
-
importFrameworkStatement: '',
|
|
240
|
-
importFrameworkName: '',
|
|
241
|
-
mockAppStatement: `
|
|
242
|
-
function App(props) {
|
|
243
|
-
return null
|
|
244
|
-
}
|
|
245
|
-
`,
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
187
|
if (process.env.TARO_PLATFORM === 'web') {
|
|
249
188
|
if (framework === 'react') {
|
|
250
189
|
const react = require('react');
|
|
@@ -277,7 +216,7 @@ function injectLoaderMeta$2(ctx, framework) {
|
|
|
277
216
|
return {
|
|
278
217
|
name: 'taro-react:loader-meta',
|
|
279
218
|
buildStart() {
|
|
280
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
219
|
+
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
281
220
|
const viteCompilerContext = yield getViteH5CompilerContext(this);
|
|
282
221
|
if (viteCompilerContext) {
|
|
283
222
|
viteCompilerContext.loaderMeta = lodash.mergeWith(getLoaderMeta(framework), viteCompilerContext.loaderMeta, customizer);
|
|
@@ -298,7 +237,7 @@ function setTaroApi() {
|
|
|
298
237
|
{
|
|
299
238
|
name: 'taro:react-api',
|
|
300
239
|
setup(build) {
|
|
301
|
-
build.onLoad({ filter: helper.REG_TARO_H5_RUNTIME_API }, (args) => __awaiter(this, void 0, void 0, function* () {
|
|
240
|
+
build.onLoad({ filter: helper.REG_TARO_H5_RUNTIME_API }, (args) => tslib.__awaiter(this, void 0, void 0, function* () {
|
|
302
241
|
const input = yield helper.fs.readFile(args.path, 'utf8');
|
|
303
242
|
return {
|
|
304
243
|
contents: apiLoader(input + '\n' + 'const taro = Taro__default\n')
|
|
@@ -311,7 +250,7 @@ function setTaroApi() {
|
|
|
311
250
|
},
|
|
312
251
|
}),
|
|
313
252
|
load(id) {
|
|
314
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
253
|
+
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
315
254
|
if (process.env.NODE_ENV === 'production' && helper.REG_TARO_H5_RUNTIME_API.test(id)) {
|
|
316
255
|
try {
|
|
317
256
|
const input = yield helper.fs.readFile(id, 'utf8');
|
|
@@ -334,7 +273,7 @@ function esbuildExclude(framework) {
|
|
|
334
273
|
enforce: 'pre',
|
|
335
274
|
config: () => ({
|
|
336
275
|
optimizeDeps: {
|
|
337
|
-
exclude: ['react', 'preact'
|
|
276
|
+
exclude: ['react', 'preact']
|
|
338
277
|
}
|
|
339
278
|
})
|
|
340
279
|
};
|
|
@@ -377,11 +316,6 @@ function aliasPlugin$1(ctx, framework) {
|
|
|
377
316
|
// TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错
|
|
378
317
|
const isHarmony = ctx.runOpts.options.platform === 'harmony';
|
|
379
318
|
if (!isProd && ((_a = ctx.initialConfig.harmony) === null || _a === void 0 ? void 0 : _a.debugReact) !== true && !isHarmony) {
|
|
380
|
-
// 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积
|
|
381
|
-
alias.push({ find: /react-reconciler$/, replacement: 'react-reconciler/cjs/react-reconciler.production.min.js' });
|
|
382
|
-
alias.push({ find: /react$/, replacement: 'react/cjs/react.production.min.js' });
|
|
383
|
-
alias.push({ find: /scheduler$/, replacement: 'scheduler/cjs/scheduler.production.min.js' });
|
|
384
|
-
alias.push({ find: /react\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' });
|
|
385
319
|
// 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。
|
|
386
320
|
// Why writeJson? prebundle will load package.json via readFile to check exports property.
|
|
387
321
|
const reactPkgPath = helper.resolveSync('react/package.json', resolveOptions);
|
|
@@ -404,23 +338,6 @@ function aliasPlugin$1(ctx, framework) {
|
|
|
404
338
|
}
|
|
405
339
|
};
|
|
406
340
|
}
|
|
407
|
-
else if (framework === 'solid') {
|
|
408
|
-
return {
|
|
409
|
-
name: 'taro-solid:alias',
|
|
410
|
-
config() {
|
|
411
|
-
const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler';
|
|
412
|
-
const alias = [
|
|
413
|
-
{ find: 'solid-js/web', replacement: reconcilerName },
|
|
414
|
-
{ find: 'react/jsx-runtime', replacement: reconcilerName },
|
|
415
|
-
];
|
|
416
|
-
return {
|
|
417
|
-
resolve: {
|
|
418
|
-
alias
|
|
419
|
-
}
|
|
420
|
-
};
|
|
421
|
-
}
|
|
422
|
-
};
|
|
423
|
-
}
|
|
424
341
|
return [];
|
|
425
342
|
}
|
|
426
343
|
|
|
@@ -488,23 +405,6 @@ function aliasPlugin(ctx, framework) {
|
|
|
488
405
|
}
|
|
489
406
|
};
|
|
490
407
|
}
|
|
491
|
-
else if (framework === 'solid') {
|
|
492
|
-
return {
|
|
493
|
-
name: 'taro-solid:alias',
|
|
494
|
-
config() {
|
|
495
|
-
const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler';
|
|
496
|
-
const alias = [
|
|
497
|
-
{ find: 'solid-js/web', replacement: reconcilerName },
|
|
498
|
-
{ find: 'react/jsx-runtime', replacement: reconcilerName },
|
|
499
|
-
];
|
|
500
|
-
return {
|
|
501
|
-
resolve: {
|
|
502
|
-
alias
|
|
503
|
-
}
|
|
504
|
-
};
|
|
505
|
-
}
|
|
506
|
-
};
|
|
507
|
-
}
|
|
508
408
|
return [];
|
|
509
409
|
}
|
|
510
410
|
|
|
@@ -546,28 +446,6 @@ function modifyH5WebpackChain(ctx, framework, chain) {
|
|
|
546
446
|
},
|
|
547
447
|
},
|
|
548
448
|
});
|
|
549
|
-
chain.merge({
|
|
550
|
-
externals,
|
|
551
|
-
module: {
|
|
552
|
-
rule: {
|
|
553
|
-
'process-import-taro-harmony-hybrid': {
|
|
554
|
-
test: /taro-platform-harmony-hybrid[\\/]dist[\\/]api[\\/]apis[\\/]taro/,
|
|
555
|
-
loader: require.resolve('./api-loader')
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
},
|
|
559
|
-
});
|
|
560
|
-
chain.merge({
|
|
561
|
-
externals,
|
|
562
|
-
module: {
|
|
563
|
-
rule: {
|
|
564
|
-
'process-import-taro-harmony-hybrid': {
|
|
565
|
-
test: /taro-platform-harmony-hybrid[\\/]dist[\\/]api[\\/]apis[\\/]taro/,
|
|
566
|
-
loader: require.resolve('./api-loader')
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
},
|
|
570
|
-
});
|
|
571
449
|
}
|
|
572
450
|
function setLoader$2(framework, chain) {
|
|
573
451
|
function customizer(object = '', sources = '') {
|
|
@@ -599,17 +477,11 @@ function setPlugin(ctx, framework, chain) {
|
|
|
599
477
|
basedir: process.cwd(),
|
|
600
478
|
mainFields,
|
|
601
479
|
};
|
|
602
|
-
if (framework === '
|
|
603
|
-
const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler';
|
|
604
|
-
const alias = chain.resolve.alias;
|
|
605
|
-
alias.set(reconcilerName, helper.resolveSync('solid-js/web', resolveOptions));
|
|
606
|
-
// Note: 本地 link 调试时,避免 solid 重复打包
|
|
607
|
-
alias.set('solid-js$', helper.resolveSync('solid-js', resolveOptions));
|
|
608
|
-
}
|
|
609
|
-
else if (framework === 'react') {
|
|
480
|
+
if (framework === 'react') {
|
|
610
481
|
const alias = chain.resolve.alias;
|
|
611
482
|
// Note: 本地 link 调试时,避免 react 重复打包
|
|
612
483
|
alias.set('react$', helper.resolveSync('react', resolveOptions));
|
|
484
|
+
alias.set('react-dom$', helper.resolveSync('react-dom', resolveOptions));
|
|
613
485
|
}
|
|
614
486
|
}
|
|
615
487
|
|
|
@@ -654,11 +526,6 @@ function setAlias$2(ctx, framework, chain) {
|
|
|
654
526
|
}
|
|
655
527
|
}
|
|
656
528
|
}
|
|
657
|
-
else if (framework === 'solid') {
|
|
658
|
-
const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler';
|
|
659
|
-
alias.set('solid-js/web', reconcilerName);
|
|
660
|
-
alias.set('react/jsx-runtime', reconcilerName);
|
|
661
|
-
}
|
|
662
529
|
}
|
|
663
530
|
function setLoader$1(framework, chain) {
|
|
664
531
|
chain.plugin('mainPlugin').tap((args) => {
|
|
@@ -708,12 +575,6 @@ function setAlias$1(ctx, framework, chain) {
|
|
|
708
575
|
}
|
|
709
576
|
}
|
|
710
577
|
}
|
|
711
|
-
else if (framework === 'solid') {
|
|
712
|
-
const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler';
|
|
713
|
-
alias.set('solid-js/web', reconcilerName);
|
|
714
|
-
// Note: 本地 link 调试时,避免 solid 重复打包
|
|
715
|
-
alias.set('solid-js$', helper.resolveSync('solid-js', resolveOptions));
|
|
716
|
-
}
|
|
717
578
|
}
|
|
718
579
|
function setLoader(framework, chain) {
|
|
719
580
|
chain.plugin('miniPlugin').tap((args) => {
|
|
@@ -723,7 +584,7 @@ function setLoader(framework, chain) {
|
|
|
723
584
|
}
|
|
724
585
|
|
|
725
586
|
function isReactLike(framework = 'react') {
|
|
726
|
-
return ['react', 'preact'
|
|
587
|
+
return ['react', 'preact'].includes(framework);
|
|
727
588
|
}
|
|
728
589
|
var index = (ctx) => {
|
|
729
590
|
const { framework = 'react' } = ctx.initialConfig;
|
|
@@ -774,13 +635,7 @@ var index = (ctx) => {
|
|
|
774
635
|
contents: require('./api-loader')(content),
|
|
775
636
|
};
|
|
776
637
|
});
|
|
777
|
-
|
|
778
|
-
const content = helper.fs.readFileSync(path).toString();
|
|
779
|
-
return {
|
|
780
|
-
contents: require('./api-loader')(content)
|
|
781
|
-
};
|
|
782
|
-
});
|
|
783
|
-
},
|
|
638
|
+
}
|
|
784
639
|
};
|
|
785
640
|
prebundleOptions.esbuild || (prebundleOptions.esbuild = {});
|
|
786
641
|
const esbuildConfig = prebundleOptions.esbuild;
|
|
@@ -808,20 +663,11 @@ var index = (ctx) => {
|
|
|
808
663
|
};
|
|
809
664
|
function setAlias(framework, chain) {
|
|
810
665
|
const alias = chain.resolve.alias;
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
alias.set('react/jsx-runtime', 'preact/jsx-runtime');
|
|
817
|
-
break;
|
|
818
|
-
case 'nerv':
|
|
819
|
-
alias.set('react$', 'nervjs');
|
|
820
|
-
alias.set('react-dom$', 'nervjs');
|
|
821
|
-
break;
|
|
822
|
-
case 'solid':
|
|
823
|
-
alias.set('react/jsx-runtime', 'solid-js/h/jsx-runtime');
|
|
824
|
-
break;
|
|
666
|
+
if (framework === 'preact') {
|
|
667
|
+
alias.set('react', 'preact/compat');
|
|
668
|
+
alias.set('react-dom/test-utils', 'preact/test-utils');
|
|
669
|
+
alias.set('react-dom', 'preact/compat');
|
|
670
|
+
alias.set('react/jsx-runtime', 'preact/jsx-runtime');
|
|
825
671
|
}
|
|
826
672
|
}
|
|
827
673
|
function VitePresetPlugin(framework) {
|
|
@@ -855,10 +701,6 @@ function viteCommonPlugin(framework) {
|
|
|
855
701
|
{ find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' },
|
|
856
702
|
]
|
|
857
703
|
: [];
|
|
858
|
-
if (framework === 'solid') {
|
|
859
|
-
const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler';
|
|
860
|
-
alias.push({ find: 'react/jsx-runtime', replacement: reconcilerName });
|
|
861
|
-
}
|
|
862
704
|
return {
|
|
863
705
|
resolve: {
|
|
864
706
|
alias,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/api-loader.ts","../src/loader-meta.ts","../src/vite.h5.ts","../src/vite.harmony.ts","../src/vite.mini.ts","../src/webpack.h5.ts","../src/webpack.harmony.ts","../src/webpack.mini.ts","../src/index.ts"],"sourcesContent":["export default function (str: string) {\n return `import {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n} from '@tarojs/plugin-framework-react/dist/runtime'\n${str}\n\ntaro.useAddToFavorites = useAddToFavorites\ntaro.useDidHide = useDidHide\ntaro.useDidShow = useDidShow\ntaro.useError = useError\ntaro.useLaunch = useLaunch\ntaro.useLoad = useLoad\ntaro.useOptionMenuClick = useOptionMenuClick\ntaro.usePageNotFound = usePageNotFound\ntaro.usePageScroll = usePageScroll\ntaro.usePullDownRefresh = usePullDownRefresh\ntaro.usePullIntercept = usePullIntercept\ntaro.useReachBottom = useReachBottom\ntaro.useReady = useReady\ntaro.useResize = useResize\ntaro.useRouter = useRouter\ntaro.useSaveExitState = useSaveExitState\ntaro.useShareAppMessage = useShareAppMessage\ntaro.useShareTimeline = useShareTimeline\ntaro.useTabItemTap = useTabItemTap\ntaro.useTitleClick = useTitleClick\ntaro.useScope = useScope\ntaro.useUnhandledRejection = useUnhandledRejection\ntaro.useUnload = useUnload\n\nexport {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n}\n`\n}\n","import * as acorn from 'acorn'\nimport * as walk from 'acorn-walk'\n\nimport { Frameworks } from './index'\n\nimport type { ILoaderMeta } from '@tarojs/taro/types/compile/config/plugin'\n\nfunction addConfig (source) {\n const configsMap = {\n enableShareAppMessage: ['onShareAppMessage', 'useShareAppMessage'],\n enableShareTimeline: ['onShareTimeline', 'useShareTimeline']\n }\n const ast = acorn.parse(source, {\n ecmaVersion: 'latest',\n sourceType: 'module'\n })\n\n const additionConfig: Record<string, any> = {}\n\n function check (name: string) {\n Object.keys(configsMap).forEach(configName => {\n const apis: string[] = configsMap[configName]\n if (apis.includes(name)) {\n additionConfig[configName] = true\n }\n })\n }\n\n walk.simple(ast, {\n FunctionExpression (node: any) {\n if (!node.id || !node.id.name) return\n check(node.id.name)\n },\n FunctionDeclaration (node: any) {\n if (!node.id || !node.id.name) return\n check(node.id.name)\n },\n CallExpression (node: any) {\n const { callee } = node\n if (callee.type === 'Identifier') {\n check(callee.name)\n } else if (callee.type === 'MemberExpression') {\n if (callee.property.type === 'Identifier') {\n check(callee.property.name)\n } else if (callee.property.type === 'Literal') {\n check(callee.property.value)\n }\n }\n node.arguments.forEach(item => {\n if (item.type === 'Literal' && item.value) {\n check(item.value)\n }\n })\n }\n })\n\n return additionConfig\n}\n\nconst nervMeta = {\n importFrameworkStatement: `\nimport Nerv from 'nervjs';\n`,\n mockAppStatement: `\nclass App extends Nerv.Component {\n render () {\n return this.props.children\n }\n}\n`,\n frameworkArgs: 'Nerv, Nerv, config',\n importFrameworkName: 'Nerv'\n}\n\nexport function getLoaderMeta (framework: Frameworks): ILoaderMeta {\n const loaderMeta = {\n importFrameworkStatement: `\nimport * as React from 'react'\nimport ReactDOM from 'react-dom'\n`,\n mockAppStatement: `\nclass App extends React.Component {\n render () {\n return this.props.children\n }\n}\n`,\n frameworkArgs: 'React, ReactDOM, config',\n creator: 'createReactApp',\n creatorLocation: '@tarojs/plugin-framework-react/dist/runtime',\n importFrameworkName: 'React',\n extraImportForWeb: '',\n execBeforeCreateWebApp: '',\n modifyConfig (config, source) {\n Object.assign(config, addConfig(source))\n }\n }\n if (framework === 'nerv') {\n Object.assign(loaderMeta, nervMeta)\n }\n\n if (framework === 'solid') {\n Object.assign(loaderMeta, {\n creator: 'createSolidApp',\n frameworkArgs: 'config',\n importFrameworkStatement: '',\n importFrameworkName: '',\n mockAppStatement: `\nfunction App(props) {\n return null\n}\n`,\n })\n }\n\n if (process.env.TARO_PLATFORM === 'web') {\n if (framework === 'react') {\n const react = require('react')\n const majorVersion = Number((react.version || '18').split('.')[0])\n if ( majorVersion >= 18) {\n // Note: In react 18 or above, should using react-dom/client\n loaderMeta.importFrameworkStatement = loaderMeta.importFrameworkStatement.replace('\\'react-dom\\'', '\\'react-dom/client\\'')\n loaderMeta.extraImportForWeb += `import { findDOMNode, render, unstable_batchedUpdates } from 'react-dom'\\n`\n loaderMeta.execBeforeCreateWebApp += `Object.assign(ReactDOM, { findDOMNode, render, unstable_batchedUpdates })\\n`\n }\n }\n }\n return loaderMeta\n}\n","import { fs, REG_TARO_H5_RUNTIME_API } from '@tarojs/helper'\nimport { mergeWith } from 'lodash'\n\nimport apiLoader from './api-loader'\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function h5iVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n setTaroApi(),\n esbuildExclude(framework)\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n function customizer (object = '', sources = '') {\n if ([object, sources].every(e => typeof e === 'string')) return object + sources\n }\n const { runnerUtils } = ctx\n const { getViteH5CompilerContext } = runnerUtils\n return {\n name: 'taro-react:loader-meta',\n async buildStart () {\n const viteCompilerContext = await getViteH5CompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = mergeWith(\n getLoaderMeta(framework), viteCompilerContext.loaderMeta, customizer\n )\n }\n }\n }\n}\n\nfunction setTaroApi (): PluginOption {\n // dev 环境通过 esbuild 来做; pro 环境通过 rollup load 钩子来做;因为生产环境不会走 esbuild\n return {\n name: 'taro-react:process-import-taro',\n enforce: 'pre',\n config: () => ({\n optimizeDeps: {\n esbuildOptions: {\n plugins: [\n {\n name: 'taro:react-api',\n setup (build) {\n build.onLoad({ filter: REG_TARO_H5_RUNTIME_API }, async (args) => {\n const input = await fs.readFile(args.path, 'utf8')\n return {\n contents: apiLoader(input + '\\n' + 'const taro = Taro__default\\n')\n }\n })\n },\n }\n ]\n }\n },\n }),\n async load (id) {\n if (process.env.NODE_ENV === 'production' && REG_TARO_H5_RUNTIME_API.test(id)) {\n try {\n const input = await fs.readFile(id, 'utf8')\n return apiLoader(input + '\\n' + 'const taro = Taro__default\\n')\n } catch (_) {\n return null\n }\n }\n }\n }\n}\n\n// todo 后面看看能否把 preact 改为虚拟模块\nfunction esbuildExclude (framework: Frameworks): PluginOption {\n if (framework !== 'preact') return null\n return {\n name: 'taro-react:esvuild-exclude',\n enforce: 'pre',\n config: ()=>({\n optimizeDeps: {\n exclude: ['react', 'preact', 'solid-js']\n }\n })\n }\n}\n","import { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function harmonyVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n aliasPlugin(ctx, framework),\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:loader-meta',\n buildStart () {\n const { runnerUtils } = ctx\n const { getViteHarmonyCompilerContext } = runnerUtils\n const viteCompilerContext = getViteHarmonyCompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = getLoaderMeta(framework)\n }\n }\n }\n}\n\nfunction aliasPlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n if (framework === 'react') {\n return {\n name: 'taro-react:alias',\n config (config) {\n const alias: ({ find: string | RegExp, replacement: string })[] = [\n { find: /react-dom$/, replacement: '@tarojs/react' },\n ]\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n const isProd = config.mode === 'production'\n // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错\n const isHarmony = ctx.runOpts.options.platform === 'harmony'\n if (!isProd && ctx.initialConfig.harmony?.debugReact !== true && !isHarmony) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n alias.push({ find: /react-reconciler$/, replacement: 'react-reconciler/cjs/react-reconciler.production.min.js' })\n alias.push({ find: /react$/, replacement: 'react/cjs/react.production.min.js' })\n alias.push({ find: /scheduler$/, replacement: 'scheduler/cjs/scheduler.production.min.js' })\n alias.push({ find: /react\\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' })\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = (reactPkg.version || '')\n if ((/^[~^]?18/).test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/'\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n } else if (framework === 'solid') {\n return {\n name: 'taro-solid:alias',\n config () {\n const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler'\n const alias = [\n { find: 'solid-js/web', replacement: reconcilerName },\n { find: 'react/jsx-runtime', replacement: reconcilerName },\n ]\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n }\n return []\n}\n","import { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function miniVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n aliasPlugin(ctx, framework),\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:loader-meta',\n buildStart () {\n const { runnerUtils } = ctx\n const { getViteMiniCompilerContext } = runnerUtils\n const viteCompilerContext = getViteMiniCompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = getLoaderMeta(framework)\n }\n }\n }\n}\n\nfunction aliasPlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n if (framework === 'react') {\n return {\n name: 'taro-react:alias',\n config (config) {\n const alias: ({ find: string | RegExp, replacement: string })[] = [\n { find: /react-dom$/, replacement: '@tarojs/react' }\n ]\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n const isProd = config.mode === 'production'\n // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错\n const isHarmony = ctx.runOpts.options.platform === 'harmony'\n if (!isProd && ctx.initialConfig.mini?.debugReact !== true && !isHarmony) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n alias.push({ find: /react-reconciler$/, replacement: 'react-reconciler/cjs/react-reconciler.production.min.js' })\n alias.push({ find: /^(?!.*mobx-react$).*react$/, replacement: 'react/cjs/react.production.min.js' })\n alias.push({ find: /scheduler$/, replacement: 'scheduler/cjs/scheduler.production.min.js' })\n alias.push({ find: /react\\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' })\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = (reactPkg.version || '')\n if ((/^[~^]?18/).test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/'\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n } else if (framework === 'solid') {\n return {\n name: 'taro-solid:alias',\n config () {\n const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler'\n const alias = [\n { find: 'solid-js/web', replacement: reconcilerName },\n { find: 'react/jsx-runtime', replacement: reconcilerName },\n ]\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n }\n return []\n}\n","import { defaultMainFields, REG_TARO_H5, resolveSync } from '@tarojs/helper'\nimport { mergeWith } from 'lodash'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type Chain from 'webpack-chain'\nimport type { Frameworks } from './index'\n\nexport function modifyH5WebpackChain (ctx: IPluginContext, framework: Frameworks, chain: Chain) {\n setLoader(framework, chain)\n setPlugin(ctx, framework, chain)\n\n const { isBuildNativeComp = false } = ctx.runOpts?.options || {}\n const externals: Record<string, { [externalType: string]: string } | string> = {}\n if (isBuildNativeComp) {\n // Note: 该模式不支持 prebundle 优化,不必再处理\n externals.react = {\n commonjs: 'react',\n commonjs2: 'react',\n amd: 'react',\n root: 'React'\n }\n externals['react-dom'] = {\n commonjs: 'react-dom',\n commonjs2: 'react-dom',\n amd: 'react-dom',\n root: 'ReactDOM'\n }\n if (framework === 'preact') {\n externals.preact = 'preact'\n }\n\n chain.merge({\n externalsType: 'umd'\n })\n }\n\n chain.merge({\n externals,\n module: {\n rule: {\n 'process-import-taro-h5': {\n test: REG_TARO_H5,\n loader: require.resolve('./api-loader'),\n },\n },\n },\n })\n\n chain.merge({\n externals,\n module: {\n rule: {\n 'process-import-taro-harmony-hybrid': {\n test: /taro-platform-harmony-hybrid[\\\\/]dist[\\\\/]api[\\\\/]apis[\\\\/]taro/,\n loader: require.resolve('./api-loader')\n }\n }\n },\n })\n\n chain.merge({\n externals,\n module: {\n rule: {\n 'process-import-taro-harmony-hybrid': {\n test: /taro-platform-harmony-hybrid[\\\\/]dist[\\\\/]api[\\\\/]apis[\\\\/]taro/,\n loader: require.resolve('./api-loader')\n }\n }\n },\n })\n}\n\nfunction setLoader(framework: Frameworks, chain) {\n function customizer(object = '', sources = '') {\n if ([object, sources].every((e) => typeof e === 'string')) return object + sources\n }\n chain.plugin('mainPlugin').tap((args) => {\n args[0].loaderMeta = mergeWith(getLoaderMeta(framework), args[0].loaderMeta, customizer)\n return args\n })\n}\n\nfunction setPlugin(ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.h5?.devServer?.hot !== false) {\n // 默认开启 fast-refresh\n if (framework === 'react') {\n chain.plugin('fastRefreshPlugin').use(require('@pmmmwh/react-refresh-webpack-plugin'))\n } else if (framework === 'preact') {\n chain.plugin('hotModuleReplacementPlugin').use(require('webpack').HotModuleReplacementPlugin)\n chain.plugin('fastRefreshPlugin').use(require('@prefresh/webpack'))\n }\n }\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'solid') {\n const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler'\n const alias = chain.resolve.alias\n alias.set(reconcilerName, resolveSync('solid-js/web', resolveOptions))\n // Note: 本地 link 调试时,避免 solid 重复打包\n alias.set('solid-js$', resolveSync('solid-js', resolveOptions))\n } else if (framework === 'react') {\n const alias = chain.resolve.alias\n // Note: 本地 link 调试时,避免 react 重复打包\n alias.set('react$', resolveSync('react', resolveOptions))\n }\n}\n","import { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\nimport path from 'path'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyHarmonyWebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, framework, chain)\n setLoader(framework, chain)\n}\n\nfunction setAlias (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n alias.set('react-dom/client$', '@tarojs/react')\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.harmony?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n // 兼容pnpm workspace\n const reactModulePath = resolveSync('react', resolveOptions)!\n const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js')\n\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set('react$', newFilePath)\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = reactPkg.version || ''\n if (/^[~^]?18/.test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/',\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n } else if (framework === 'solid') {\n const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler'\n alias.set('solid-js/web', reconcilerName)\n alias.set('react/jsx-runtime', reconcilerName)\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('mainPlugin').tap((args) => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n","import { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\nimport path from 'path'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyMiniWebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, framework, chain)\n setLoader(framework, chain)\n}\n\nfunction setAlias (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n alias.set('react-dom/client$', '@tarojs/react')\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.mini?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n // 兼容pnpm workspace\n const reactModulePath = resolveSync('react', resolveOptions)!\n const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js')\n\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set(/^(?!.*mobx-react$).*react$/, newFilePath)\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = reactPkg.version || ''\n if (/^[~^]?18/.test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/',\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n } else if (framework === 'solid') {\n const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler'\n alias.set('solid-js/web', reconcilerName)\n // Note: 本地 link 调试时,避免 solid 重复打包\n alias.set('solid-js$', resolveSync('solid-js', resolveOptions))\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('miniPlugin').tap((args) => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n","import { fs, REG_TARO_H5 } from '@tarojs/helper'\nimport { isString } from '@tarojs/shared'\n\nimport { h5iVitePlugin } from './vite.h5'\nimport { harmonyVitePlugin } from './vite.harmony'\nimport { miniVitePlugin } from './vite.mini'\nimport { modifyH5WebpackChain } from './webpack.h5'\nimport { modifyHarmonyWebpackChain } from './webpack.harmony'\nimport { modifyMiniWebpackChain } from './webpack.mini'\n\nimport type { esbuild } from '@tarojs/helper'\nimport type { IPluginContext } from '@tarojs/service'\nimport type { IProjectConfig } from '@tarojs/taro/types/compile'\nimport type { PluginOption } from 'vite'\n\nexport type Frameworks = 'react' | 'preact' | 'solid' | 'nerv'\n\nexport function isReactLike(framework: IProjectConfig['framework'] = 'react'): framework is Frameworks {\n return ['react', 'preact', 'nerv', 'solid'].includes(framework)\n}\n\nexport default (ctx: IPluginContext) => {\n const { framework = 'react' } = ctx.initialConfig\n\n if (!isReactLike(framework)) return\n\n ctx.modifyWebpackChain(({ chain }) => {\n // 通用\n setAlias(framework, chain)\n\n if (process.env.TARO_PLATFORM === 'web') {\n // H5\n modifyH5WebpackChain(ctx, framework, chain)\n } else if (process.env.TARO_PLATFORM === 'harmony' || process.env.TARO_ENV === 'harmony') {\n // 鸿蒙\n modifyHarmonyWebpackChain(ctx, framework, chain)\n } else {\n // 小程序\n modifyMiniWebpackChain(ctx, framework, chain)\n }\n })\n\n ctx.modifyRunnerOpts(({ opts }) => {\n if (!opts?.compiler) return\n\n if (isString(opts.compiler)) {\n opts.compiler = {\n type: opts.compiler,\n }\n }\n\n const { compiler } = opts\n if (compiler.type === 'webpack5') {\n // 提供给 webpack5 依赖预编译收集器的第三方依赖\n const deps = ['react', 'react-dom', 'react/jsx-runtime', '@tarojs/plugin-framework-react/dist/runtime']\n compiler.prebundle ||= {}\n const prebundleOptions = compiler.prebundle\n prebundleOptions.include ||= []\n prebundleOptions.include = prebundleOptions.include.concat(deps)\n prebundleOptions.exclude ||= []\n prebundleOptions.exclude.push(/mobx/) // 依赖会对 webpack 修改,默认排除\n if (prebundleOptions.enable === false) return\n\n const taroReactPlugin: esbuild.Plugin = {\n name: 'taroReactPlugin',\n setup(build) {\n build.onLoad({ filter: REG_TARO_H5 }, ({ path }) => {\n const content = fs.readFileSync(path).toString()\n return {\n contents: require('./api-loader')(content),\n }\n })\n build.onLoad({ filter: /taro-platform-harmony-hybrid[\\\\/]dist[\\\\/]api[\\\\/]apis[\\\\/]taro/ }, ({ path }) => {\n const content = fs.readFileSync(path).toString()\n return {\n contents: require('./api-loader')(content)\n }\n })\n },\n }\n\n prebundleOptions.esbuild ||= {}\n const esbuildConfig = prebundleOptions.esbuild\n esbuildConfig.plugins ||= []\n esbuildConfig.plugins.push(taroReactPlugin)\n } else if (compiler.type === 'vite') {\n compiler.vitePlugins ||= []\n compiler.vitePlugins.push(viteCommonPlugin(framework))\n compiler.vitePlugins.push(VitePresetPlugin(framework))\n if (process.env.TARO_PLATFORM === 'web') {\n // H5\n compiler.vitePlugins.push(h5iVitePlugin(ctx, framework))\n } else if (process.env.TARO_PLATFORM === 'harmony' || process.env.TARO_ENV === 'harmony') {\n // 鸿蒙\n compiler.vitePlugins.push(harmonyVitePlugin(ctx, framework))\n } else {\n // 小程序\n compiler.vitePlugins.push(miniVitePlugin(ctx, framework))\n }\n }\n })\n}\n\nfunction setAlias(framework: Frameworks, chain) {\n const alias = chain.resolve.alias\n\n switch (framework) {\n case 'preact':\n alias.set('react', 'preact/compat')\n alias.set('react-dom/test-utils', 'preact/test-utils')\n alias.set('react-dom', 'preact/compat')\n alias.set('react/jsx-runtime', 'preact/jsx-runtime')\n break\n case 'nerv':\n alias.set('react$', 'nervjs')\n alias.set('react-dom$', 'nervjs')\n break\n case 'solid':\n alias.set('react/jsx-runtime', 'solid-js/h/jsx-runtime')\n break\n }\n}\n\nfunction VitePresetPlugin (framework: Frameworks): PluginOption {\n return framework === 'preact'\n ? require('@preact/preset-vite').preact({\n babel: {\n plugins: [\n ['@babel/plugin-proposal-decorators', { legacy: true }],\n ['@babel/plugin-proposal-class-properties', { loose: true }],\n ],\n },\n })\n : require('@vitejs/plugin-react').default({\n babel: {\n plugins: [\n ['@babel/plugin-proposal-decorators', { legacy: true }],\n ['@babel/plugin-proposal-class-properties', { loose: true }],\n ],\n },\n })\n}\n\nfunction viteCommonPlugin(framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:common',\n config() {\n const alias =\n framework === 'preact'\n ? [\n { find: 'react', replacement: 'preact/compat' },\n { find: 'react-dom/test-utils', replacement: 'preact/test-utils' },\n { find: 'react-dom', replacement: 'preact/compat' },\n { find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' },\n ]\n : []\n if (framework === 'solid') {\n const reconcilerName = '@tarojs/plugin-framework-react/dist/reconciler'\n alias.push(\n { find: 'react/jsx-runtime', replacement: reconcilerName },\n )\n }\n\n return {\n resolve: {\n alias,\n },\n }\n },\n }\n}\n"],"names":["acorn","walk","injectLoaderMeta","mergeWith","REG_TARO_H5_RUNTIME_API","fs","aliasPlugin","defaultMainFields","resolveSync","setLoader","REG_TARO_H5","setAlias","isString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/api-loader.ts","../src/loader-meta.ts","../src/vite.h5.ts","../src/vite.harmony.ts","../src/vite.mini.ts","../src/webpack.h5.ts","../src/webpack.harmony.ts","../src/webpack.mini.ts","../src/index.ts"],"sourcesContent":["export default function (str: string) {\n return `import {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n} from '@tarojs/plugin-framework-react/dist/runtime'\n${str}\n\ntaro.useAddToFavorites = useAddToFavorites\ntaro.useDidHide = useDidHide\ntaro.useDidShow = useDidShow\ntaro.useError = useError\ntaro.useLaunch = useLaunch\ntaro.useLoad = useLoad\ntaro.useOptionMenuClick = useOptionMenuClick\ntaro.usePageNotFound = usePageNotFound\ntaro.usePageScroll = usePageScroll\ntaro.usePullDownRefresh = usePullDownRefresh\ntaro.usePullIntercept = usePullIntercept\ntaro.useReachBottom = useReachBottom\ntaro.useReady = useReady\ntaro.useResize = useResize\ntaro.useRouter = useRouter\ntaro.useSaveExitState = useSaveExitState\ntaro.useShareAppMessage = useShareAppMessage\ntaro.useShareTimeline = useShareTimeline\ntaro.useTabItemTap = useTabItemTap\ntaro.useTitleClick = useTitleClick\ntaro.useScope = useScope\ntaro.useUnhandledRejection = useUnhandledRejection\ntaro.useUnload = useUnload\n\nexport {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n}\n`\n}\n","import * as acorn from 'acorn'\nimport * as walk from 'acorn-walk'\n\nimport { Frameworks } from './index'\n\nimport type { ILoaderMeta } from '@tarojs/taro/types/compile/config/plugin'\n\nfunction addConfig (source) {\n const configsMap = {\n enableShareAppMessage: ['onShareAppMessage', 'useShareAppMessage'],\n enableShareTimeline: ['onShareTimeline', 'useShareTimeline']\n }\n const ast = acorn.parse(source, {\n ecmaVersion: 'latest',\n sourceType: 'module'\n })\n\n const additionConfig: Record<string, any> = {}\n\n function check (name: string) {\n Object.keys(configsMap).forEach(configName => {\n const apis: string[] = configsMap[configName]\n if (apis.includes(name)) {\n additionConfig[configName] = true\n }\n })\n }\n\n walk.simple(ast, {\n FunctionExpression (node: any) {\n if (!node.id || !node.id.name) return\n check(node.id.name)\n },\n FunctionDeclaration (node: any) {\n if (!node.id || !node.id.name) return\n check(node.id.name)\n },\n CallExpression (node: any) {\n const { callee } = node\n if (callee.type === 'Identifier') {\n check(callee.name)\n } else if (callee.type === 'MemberExpression') {\n if (callee.property.type === 'Identifier') {\n check(callee.property.name)\n } else if (callee.property.type === 'Literal') {\n check(callee.property.value)\n }\n }\n node.arguments.forEach(item => {\n if (item.type === 'Literal' && item.value) {\n check(item.value)\n }\n })\n }\n })\n\n return additionConfig\n}\n\nexport function getLoaderMeta (framework: Frameworks): ILoaderMeta {\n const loaderMeta = {\n importFrameworkStatement: `\nimport * as React from 'react'\nimport ReactDOM from 'react-dom'\n`,\n mockAppStatement: `\nclass App extends React.Component {\n render () {\n return this.props.children\n }\n}\n`,\n frameworkArgs: 'React, ReactDOM, config',\n creator: 'createReactApp',\n creatorLocation: '@tarojs/plugin-framework-react/dist/runtime',\n importFrameworkName: 'React',\n extraImportForWeb: '',\n execBeforeCreateWebApp: '',\n modifyConfig (config, source) {\n Object.assign(config, addConfig(source))\n }\n }\n\n if (process.env.TARO_PLATFORM === 'web') {\n if (framework === 'react') {\n const react = require('react')\n const majorVersion = Number((react.version || '18').split('.')[0])\n if (majorVersion >= 18) {\n // Note: In react 18 or above, should using react-dom/client\n loaderMeta.importFrameworkStatement = loaderMeta.importFrameworkStatement.replace('\\'react-dom\\'', '\\'react-dom/client\\'')\n loaderMeta.extraImportForWeb += `import { findDOMNode, render, unstable_batchedUpdates } from 'react-dom'\\n`\n loaderMeta.execBeforeCreateWebApp += `Object.assign(ReactDOM, { findDOMNode, render, unstable_batchedUpdates })\\n`\n }\n }\n }\n return loaderMeta\n}\n","import { fs, REG_TARO_H5_RUNTIME_API } from '@tarojs/helper'\nimport { mergeWith } from 'lodash'\n\nimport apiLoader from './api-loader'\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function h5iVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n setTaroApi(),\n esbuildExclude(framework)\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n function customizer (object = '', sources = '') {\n if ([object, sources].every(e => typeof e === 'string')) return object + sources\n }\n const { runnerUtils } = ctx\n const { getViteH5CompilerContext } = runnerUtils\n return {\n name: 'taro-react:loader-meta',\n async buildStart () {\n const viteCompilerContext = await getViteH5CompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = mergeWith(\n getLoaderMeta(framework), viteCompilerContext.loaderMeta, customizer\n )\n }\n }\n }\n}\n\nfunction setTaroApi (): PluginOption {\n // dev 环境通过 esbuild 来做; pro 环境通过 rollup load 钩子来做;因为生产环境不会走 esbuild\n return {\n name: 'taro-react:process-import-taro',\n enforce: 'pre',\n config: () => ({\n optimizeDeps: {\n esbuildOptions: {\n plugins: [\n {\n name: 'taro:react-api',\n setup (build) {\n build.onLoad({ filter: REG_TARO_H5_RUNTIME_API }, async (args) => {\n const input = await fs.readFile(args.path, 'utf8')\n return {\n contents: apiLoader(input + '\\n' + 'const taro = Taro__default\\n')\n }\n })\n },\n }\n ]\n }\n },\n }),\n async load (id) {\n if (process.env.NODE_ENV === 'production' && REG_TARO_H5_RUNTIME_API.test(id)) {\n try {\n const input = await fs.readFile(id, 'utf8')\n return apiLoader(input + '\\n' + 'const taro = Taro__default\\n')\n } catch (_) {\n return null\n }\n }\n }\n }\n}\n\n// todo 后面看看能否把 preact 改为虚拟模块\nfunction esbuildExclude (framework: Frameworks): PluginOption {\n if (framework !== 'preact') return null\n return {\n name: 'taro-react:esvuild-exclude',\n enforce: 'pre',\n config: () => ({\n optimizeDeps: {\n exclude: ['react', 'preact']\n }\n })\n }\n}\n","import { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function harmonyVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n aliasPlugin(ctx, framework),\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:loader-meta',\n buildStart () {\n const { runnerUtils } = ctx\n const { getViteHarmonyCompilerContext } = runnerUtils\n const viteCompilerContext = getViteHarmonyCompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = getLoaderMeta(framework)\n }\n }\n }\n}\n\nfunction aliasPlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n if (framework === 'react') {\n return {\n name: 'taro-react:alias',\n config (config) {\n const alias: ({ find: string | RegExp, replacement: string })[] = [\n { find: /react-dom$/, replacement: '@tarojs/react' },\n ]\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n const isProd = config.mode === 'production'\n // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错\n const isHarmony = ctx.runOpts.options.platform === 'harmony'\n if (!isProd && ctx.initialConfig.harmony?.debugReact !== true && !isHarmony) {\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = (reactPkg.version || '')\n if ((/^[~^]?18/).test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/'\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n }\n return []\n}\n","import { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function miniVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n aliasPlugin(ctx, framework),\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:loader-meta',\n buildStart () {\n const { runnerUtils } = ctx\n const { getViteMiniCompilerContext } = runnerUtils\n const viteCompilerContext = getViteMiniCompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = getLoaderMeta(framework)\n }\n }\n }\n}\n\nfunction aliasPlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n if (framework === 'react') {\n return {\n name: 'taro-react:alias',\n config (config) {\n const alias: ({ find: string | RegExp, replacement: string })[] = [\n { find: /react-dom$/, replacement: '@tarojs/react' }\n ]\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n const isProd = config.mode === 'production'\n // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错\n const isHarmony = ctx.runOpts.options.platform === 'harmony'\n if (!isProd && ctx.initialConfig.mini?.debugReact !== true && !isHarmony) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n alias.push({ find: /react-reconciler$/, replacement: 'react-reconciler/cjs/react-reconciler.production.min.js' })\n alias.push({ find: /^(?!.*mobx-react$).*react$/, replacement: 'react/cjs/react.production.min.js' })\n alias.push({ find: /scheduler$/, replacement: 'scheduler/cjs/scheduler.production.min.js' })\n alias.push({ find: /react\\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' })\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = (reactPkg.version || '')\n if ((/^[~^]?18/).test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/'\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n }\n return []\n}\n","import { defaultMainFields, REG_TARO_H5, resolveSync } from '@tarojs/helper'\nimport { mergeWith } from 'lodash'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type Chain from 'webpack-chain'\nimport type { Frameworks } from './index'\n\nexport function modifyH5WebpackChain (ctx: IPluginContext, framework: Frameworks, chain: Chain) {\n setLoader(framework, chain)\n setPlugin(ctx, framework, chain)\n\n const { isBuildNativeComp = false } = ctx.runOpts?.options || {}\n const externals: Record<string, { [externalType: string]: string } | string> = {}\n if (isBuildNativeComp) {\n // Note: 该模式不支持 prebundle 优化,不必再处理\n externals.react = {\n commonjs: 'react',\n commonjs2: 'react',\n amd: 'react',\n root: 'React'\n }\n externals['react-dom'] = {\n commonjs: 'react-dom',\n commonjs2: 'react-dom',\n amd: 'react-dom',\n root: 'ReactDOM'\n }\n if (framework === 'preact') {\n externals.preact = 'preact'\n }\n\n chain.merge({\n externalsType: 'umd'\n })\n }\n\n chain.merge({\n externals,\n module: {\n rule: {\n 'process-import-taro-h5': {\n test: REG_TARO_H5,\n loader: require.resolve('./api-loader'),\n },\n },\n },\n })\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n function customizer (object = '', sources = '') {\n if ([object, sources].every((e) => typeof e === 'string')) return object + sources\n }\n chain.plugin('mainPlugin').tap((args) => {\n args[0].loaderMeta = mergeWith(getLoaderMeta(framework), args[0].loaderMeta, customizer)\n return args\n })\n}\n\nfunction setPlugin (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.h5?.devServer?.hot !== false) {\n // 默认开启 fast-refresh\n if (framework === 'react') {\n chain.plugin('fastRefreshPlugin').use(require('@pmmmwh/react-refresh-webpack-plugin'))\n } else if (framework === 'preact') {\n chain.plugin('hotModuleReplacementPlugin').use(require('webpack').HotModuleReplacementPlugin)\n chain.plugin('fastRefreshPlugin').use(require('@prefresh/webpack'))\n }\n }\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'react') {\n const alias = chain.resolve.alias\n // Note: 本地 link 调试时,避免 react 重复打包\n alias.set('react$', resolveSync('react', resolveOptions))\n alias.set('react-dom$', resolveSync('react-dom', resolveOptions))\n }\n}\n","import path from 'node:path'\n\nimport { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyHarmonyWebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, framework, chain)\n setLoader(framework, chain)\n}\n\nfunction setAlias (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n alias.set('react-dom/client$', '@tarojs/react')\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.harmony?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n // 兼容pnpm workspace\n const reactModulePath = resolveSync('react', resolveOptions)!\n const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js')\n\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set('react$', newFilePath)\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = reactPkg.version || ''\n if (/^[~^]?18/.test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/',\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('mainPlugin').tap((args) => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n","import path from 'node:path'\n\nimport { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyMiniWebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, framework, chain)\n setLoader(framework, chain)\n}\n\nfunction setAlias (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n alias.set('react-dom/client$', '@tarojs/react')\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.mini?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n // 兼容pnpm workspace\n const reactModulePath = resolveSync('react', resolveOptions)!\n const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js')\n\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set(/^(?!.*mobx-react$).*react$/, newFilePath)\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = reactPkg.version || ''\n if (/^[~^]?18/.test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/',\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('miniPlugin').tap((args) => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n","import { fs, REG_TARO_H5 } from '@tarojs/helper'\nimport { isString } from '@tarojs/shared'\n\nimport { h5iVitePlugin } from './vite.h5'\nimport { harmonyVitePlugin } from './vite.harmony'\nimport { miniVitePlugin } from './vite.mini'\nimport { modifyH5WebpackChain } from './webpack.h5'\nimport { modifyHarmonyWebpackChain } from './webpack.harmony'\nimport { modifyMiniWebpackChain } from './webpack.mini'\n\nimport type { esbuild } from '@tarojs/helper'\nimport type { IPluginContext } from '@tarojs/service'\nimport type { IProjectConfig } from '@tarojs/taro/types/compile'\nimport type { PluginOption } from 'vite'\n\nexport type Frameworks = 'react' | 'preact'\n\nexport function isReactLike(framework: IProjectConfig['framework'] = 'react'): framework is Frameworks {\n return ['react', 'preact'].includes(framework)\n}\n\nexport default (ctx: IPluginContext) => {\n const { framework = 'react' } = ctx.initialConfig\n\n if (!isReactLike(framework)) return\n\n ctx.modifyWebpackChain(({ chain }) => {\n // 通用\n setAlias(framework, chain)\n\n if (process.env.TARO_PLATFORM === 'web') {\n // H5\n modifyH5WebpackChain(ctx, framework, chain)\n } else if (process.env.TARO_PLATFORM === 'harmony' || process.env.TARO_ENV === 'harmony') {\n // 鸿蒙\n modifyHarmonyWebpackChain(ctx, framework, chain)\n } else {\n // 小程序\n modifyMiniWebpackChain(ctx, framework, chain)\n }\n })\n\n ctx.modifyRunnerOpts(({ opts }) => {\n if (!opts?.compiler) return\n\n if (isString(opts.compiler)) {\n opts.compiler = {\n type: opts.compiler,\n }\n }\n\n const { compiler } = opts\n if (compiler.type === 'webpack5') {\n // 提供给 webpack5 依赖预编译收集器的第三方依赖\n const deps = ['react', 'react-dom', 'react/jsx-runtime', '@tarojs/plugin-framework-react/dist/runtime']\n compiler.prebundle ||= {}\n const prebundleOptions = compiler.prebundle\n prebundleOptions.include ||= []\n prebundleOptions.include = prebundleOptions.include.concat(deps)\n prebundleOptions.exclude ||= []\n prebundleOptions.exclude.push(/mobx/) // 依赖会对 webpack 修改,默认排除\n if (prebundleOptions.enable === false) return\n\n const taroReactPlugin: esbuild.Plugin = {\n name: 'taroReactPlugin',\n setup (build) {\n build.onLoad({ filter: REG_TARO_H5 }, ({ path }) => {\n const content = fs.readFileSync(path).toString()\n return {\n contents: require('./api-loader')(content),\n }\n })\n }\n }\n\n prebundleOptions.esbuild ||= {}\n const esbuildConfig = prebundleOptions.esbuild\n esbuildConfig.plugins ||= []\n esbuildConfig.plugins.push(taroReactPlugin)\n } else if (compiler.type === 'vite') {\n compiler.vitePlugins ||= []\n compiler.vitePlugins.push(viteCommonPlugin(framework))\n compiler.vitePlugins.push(VitePresetPlugin(framework))\n if (process.env.TARO_PLATFORM === 'web') {\n // H5\n compiler.vitePlugins.push(h5iVitePlugin(ctx, framework))\n } else if (process.env.TARO_PLATFORM === 'harmony' || process.env.TARO_ENV === 'harmony') {\n // 鸿蒙\n compiler.vitePlugins.push(harmonyVitePlugin(ctx, framework))\n } else {\n // 小程序\n compiler.vitePlugins.push(miniVitePlugin(ctx, framework))\n }\n }\n })\n}\n\nfunction setAlias (framework: Frameworks, chain) {\n const alias = chain.resolve.alias\n if (framework === 'preact') {\n alias.set('react', 'preact/compat')\n alias.set('react-dom/test-utils', 'preact/test-utils')\n alias.set('react-dom', 'preact/compat')\n alias.set('react/jsx-runtime', 'preact/jsx-runtime')\n }\n}\n\nfunction VitePresetPlugin (framework: Frameworks): PluginOption {\n return framework === 'preact'\n ? require('@preact/preset-vite').preact({\n babel: {\n plugins: [\n ['@babel/plugin-proposal-decorators', { legacy: true }],\n ['@babel/plugin-proposal-class-properties', { loose: true }],\n ],\n },\n })\n : require('@vitejs/plugin-react').default({\n babel: {\n plugins: [\n ['@babel/plugin-proposal-decorators', { legacy: true }],\n ['@babel/plugin-proposal-class-properties', { loose: true }],\n ],\n },\n })\n}\n\nfunction viteCommonPlugin (framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:common',\n config () {\n const alias =\n framework === 'preact'\n ? [\n { find: 'react', replacement: 'preact/compat' },\n { find: 'react-dom/test-utils', replacement: 'preact/test-utils' },\n { find: 'react-dom', replacement: 'preact/compat' },\n { find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' },\n ]\n : []\n\n return {\n resolve: {\n alias,\n },\n }\n },\n }\n}\n"],"names":["acorn","walk","injectLoaderMeta","mergeWith","REG_TARO_H5_RUNTIME_API","__awaiter","fs","aliasPlugin","defaultMainFields","resolveSync","setLoader","REG_TARO_H5","setAlias","isString"],"mappings":"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"}
|