@tarojs/plugin-framework-react 3.4.0-beta.2 → 3.4.2

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.
@@ -21,22 +21,22 @@ function apiLoader (str) {
21
21
  } from '@tarojs/plugin-framework-react/dist/runtime'
22
22
  ${str}
23
23
 
24
- Taro.useDidShow = useDidShow
25
- Taro.useDidHide = useDidHide
26
- Taro.usePullDownRefresh = usePullDownRefresh
27
- Taro.useReachBottom = useReachBottom
28
- Taro.usePageScroll = usePageScroll
29
- Taro.useResize = useResize
30
- Taro.useShareAppMessage = useShareAppMessage
31
- Taro.useTabItemTap = useTabItemTap
32
- Taro.useTitleClick = useTitleClick
33
- Taro.useOptionMenuClick = useOptionMenuClick
34
- Taro.usePullIntercept = usePullIntercept
35
- Taro.useShareTimeline = useShareTimeline
36
- Taro.useAddToFavorites = useAddToFavorites
37
- Taro.useReady = useReady
38
- Taro.useRouter = useRouter
39
- Taro.useScope = useScope
24
+ taro.useDidShow = useDidShow
25
+ taro.useDidHide = useDidHide
26
+ taro.usePullDownRefresh = usePullDownRefresh
27
+ taro.useReachBottom = useReachBottom
28
+ taro.usePageScroll = usePageScroll
29
+ taro.useResize = useResize
30
+ taro.useShareAppMessage = useShareAppMessage
31
+ taro.useTabItemTap = useTabItemTap
32
+ taro.useTitleClick = useTitleClick
33
+ taro.useOptionMenuClick = useOptionMenuClick
34
+ taro.usePullIntercept = usePullIntercept
35
+ taro.useShareTimeline = useShareTimeline
36
+ taro.useAddToFavorites = useAddToFavorites
37
+ taro.useReady = useReady
38
+ taro.useRouter = useRouter
39
+ taro.useScope = useScope
40
40
 
41
41
  export {
42
42
  useDidShow,
@@ -1 +1 @@
1
- {"version":3,"file":"api-loader.js","sources":["../src/api-loader.ts"],"sourcesContent":["export default function (str) {\n return `import {\n useDidShow,\n useDidHide,\n usePullDownRefresh,\n useReachBottom,\n usePageScroll,\n useResize,\n useShareAppMessage,\n useTabItemTap,\n useTitleClick,\n useOptionMenuClick,\n usePullIntercept,\n useShareTimeline,\n useAddToFavorites,\n useReady,\n useRouter,\n useScope\n } from '@tarojs/plugin-framework-react/dist/runtime'\n ${str}\n\n Taro.useDidShow = useDidShow\n Taro.useDidHide = useDidHide\n Taro.usePullDownRefresh = usePullDownRefresh\n Taro.useReachBottom = useReachBottom\n Taro.usePageScroll = usePageScroll\n Taro.useResize = useResize\n Taro.useShareAppMessage = useShareAppMessage\n Taro.useTabItemTap = useTabItemTap\n Taro.useTitleClick = useTitleClick\n Taro.useOptionMenuClick = useOptionMenuClick\n Taro.usePullIntercept = usePullIntercept\n Taro.useShareTimeline = useShareTimeline\n Taro.useAddToFavorites = useAddToFavorites\n Taro.useReady = useReady\n Taro.useRouter = useRouter\n Taro.useScope = useScope\n\n export {\n useDidShow,\n useDidHide,\n usePullDownRefresh,\n useReachBottom,\n usePageScroll,\n useResize,\n useShareAppMessage,\n useTabItemTap,\n useTitleClick,\n useOptionMenuClick,\n usePullIntercept,\n useShareTimeline,\n useAddToFavorites,\n useReady,\n useRouter,\n useScope\n }\n `\n}\n"],"names":[],"mappings":";;oBAAyB,GAAG;IAC1B,OAAO;;;;;;;;;;;;;;;;;;IAkBL,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCJ,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"api-loader.js","sources":["../src/api-loader.ts"],"sourcesContent":["export default function (str) {\n return `import {\n useDidShow,\n useDidHide,\n usePullDownRefresh,\n useReachBottom,\n usePageScroll,\n useResize,\n useShareAppMessage,\n useTabItemTap,\n useTitleClick,\n useOptionMenuClick,\n usePullIntercept,\n useShareTimeline,\n useAddToFavorites,\n useReady,\n useRouter,\n useScope\n } from '@tarojs/plugin-framework-react/dist/runtime'\n ${str}\n\n taro.useDidShow = useDidShow\n taro.useDidHide = useDidHide\n taro.usePullDownRefresh = usePullDownRefresh\n taro.useReachBottom = useReachBottom\n taro.usePageScroll = usePageScroll\n taro.useResize = useResize\n taro.useShareAppMessage = useShareAppMessage\n taro.useTabItemTap = useTabItemTap\n taro.useTitleClick = useTitleClick\n taro.useOptionMenuClick = useOptionMenuClick\n taro.usePullIntercept = usePullIntercept\n taro.useShareTimeline = useShareTimeline\n taro.useAddToFavorites = useAddToFavorites\n taro.useReady = useReady\n taro.useRouter = useRouter\n taro.useScope = useScope\n\n export {\n useDidShow,\n useDidHide,\n usePullDownRefresh,\n useReachBottom,\n usePageScroll,\n useResize,\n useShareAppMessage,\n useTabItemTap,\n useTitleClick,\n useOptionMenuClick,\n usePullIntercept,\n useShareTimeline,\n useAddToFavorites,\n useReady,\n useRouter,\n useScope\n }\n `\n}\n"],"names":[],"mappings":";;oBAAyB,GAAG;IAC1B,OAAO;;;;;;;;;;;;;;;;;;IAkBL,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCJ,CAAA;AACH;;;;"}
package/dist/index.js CHANGED
@@ -158,7 +158,7 @@ function modifyH5WebpackChain(ctx, framework, chain) {
158
158
  module: {
159
159
  rule: {
160
160
  'process-import-taro': {
161
- test: /taro-h5[\\/]src[\\/]index/,
161
+ test: /taro-h5[\\/]dist[\\/]index/,
162
162
  loader: require.resolve('./api-loader')
163
163
  }
164
164
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/loader-meta.ts","../src/webpack.mini.ts","../src/webpack.h5.ts","../src/index.ts"],"sourcesContent":["import * as acorn from 'acorn'\nimport * as walk from 'acorn-walk'\nimport { Frameworks } from './index'\n\ninterface ILoaderMeta {\n importFrameworkStatement: string\n mockAppStatement: string\n frameworkArgs: string\n creator: string\n creatorLocation: string\n importFrameworkName: string\n isNeedRawLoader?: boolean\n extraImportForWeb?: string\n execBeforeCreateWebApp?: string\n compatComponentImport?: string\n compatComponentExtra?: string\n modifyConfig?: (config: Record<string, any>, source: string) => void\n}\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 }\n })\n\n return additionConfig\n}\n\nconst frameworkMeta: Record<string, ILoaderMeta> = {\n nerv: {\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 creator: 'createReactApp',\n creatorLocation: '@tarojs/plugin-framework-react/dist/runtime',\n importFrameworkName: 'Nerv',\n modifyConfig (config, source) {\n Object.assign(config, addConfig(source))\n }\n },\n react: {\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 compatComponentImport: 'import { PullDownRefresh } from \"@tarojs/components\"',\n compatComponentExtra: 'config.PullDownRefresh = PullDownRefresh',\n modifyConfig (config, source) {\n Object.assign(config, addConfig(source))\n }\n }\n}\n\nexport function getLoaderMeta (framework: Frameworks) {\n if (framework === 'preact') framework = 'react'\n return frameworkMeta[framework]\n}\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 if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n if (process.env.NODE_ENV !== 'production' && config.mini?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set('react$', 'react/cjs/react.production.min.js')\n alias.set('scheduler$', 'scheduler/cjs/scheduler.production.min.js')\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n }\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('miniPlugin')\n .tap(args => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n","\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyH5WebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, chain)\n setLoader(framework, chain)\n setPlugin(ctx, framework, chain)\n\n chain.merge({\n module: {\n rule: {\n 'process-import-taro': {\n test: /taro-h5[\\\\/]src[\\\\/]index/,\n loader: require.resolve('./api-loader')\n }\n }\n }\n })\n}\n\nfunction setAlias (ctx: IPluginContext, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n if (config.h5?.useHtmlComponents) {\n alias.set('@tarojs/components$', '@tarojs/components-react/index')\n } else {\n alias.set('@tarojs/components$', '@tarojs/components/dist-h5/react')\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('mainPlugin')\n .tap(args => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n\nfunction setPlugin (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n\n if (\n process.env.NODE_ENV !== 'production' &&\n config.h5?.devServer?.hot !== false\n ) {\n // 默认开启 fast-refresh\n if (framework === 'react') {\n chain\n .plugin('fastRefreshPlugin')\n .use(require('@pmmmwh/react-refresh-webpack-plugin'))\n } else if (framework === 'preact') {\n chain\n .plugin('fastRefreshPlugin')\n .use(require('@prefresh/webpack'))\n }\n }\n}\n","import { modifyMiniWebpackChain } from './webpack.mini'\nimport { modifyH5WebpackChain } from './webpack.h5'\n\nimport type { IPluginContext } from '@tarojs/service'\n\nexport type Frameworks = 'react' | 'preact' | 'nerv'\n\nexport default (ctx: IPluginContext) => {\n const { framework } = ctx.initialConfig\n\n if (framework !== 'react' && framework !== 'nerv' && framework !== 'preact') return\n\n ctx.modifyWebpackChain(({ chain }) => {\n // 通用\n setAlias(framework, chain)\n chain\n .plugin('definePlugin')\n .tap(args => {\n const config = args[0]\n config.__TARO_FRAMEWORK__ = `\"${framework}\"`\n return args\n })\n\n if (process.env.TARO_ENV === 'h5') {\n // H5\n modifyH5WebpackChain(ctx, framework, chain)\n } else {\n // 小程序\n modifyMiniWebpackChain(ctx, framework, chain)\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 }\n}\n"],"names":["acorn","walk","setAlias","setLoader"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/loader-meta.ts","../src/webpack.mini.ts","../src/webpack.h5.ts","../src/index.ts"],"sourcesContent":["import * as acorn from 'acorn'\nimport * as walk from 'acorn-walk'\nimport { Frameworks } from './index'\n\ninterface ILoaderMeta {\n importFrameworkStatement: string\n mockAppStatement: string\n frameworkArgs: string\n creator: string\n creatorLocation: string\n importFrameworkName: string\n isNeedRawLoader?: boolean\n extraImportForWeb?: string\n execBeforeCreateWebApp?: string\n compatComponentImport?: string\n compatComponentExtra?: string\n modifyConfig?: (config: Record<string, any>, source: string) => void\n}\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 }\n })\n\n return additionConfig\n}\n\nconst frameworkMeta: Record<string, ILoaderMeta> = {\n nerv: {\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 creator: 'createReactApp',\n creatorLocation: '@tarojs/plugin-framework-react/dist/runtime',\n importFrameworkName: 'Nerv',\n modifyConfig (config, source) {\n Object.assign(config, addConfig(source))\n }\n },\n react: {\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 compatComponentImport: 'import { PullDownRefresh } from \"@tarojs/components\"',\n compatComponentExtra: 'config.PullDownRefresh = PullDownRefresh',\n modifyConfig (config, source) {\n Object.assign(config, addConfig(source))\n }\n }\n}\n\nexport function getLoaderMeta (framework: Frameworks) {\n if (framework === 'preact') framework = 'react'\n return frameworkMeta[framework]\n}\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 if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n if (process.env.NODE_ENV !== 'production' && config.mini?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set('react$', 'react/cjs/react.production.min.js')\n alias.set('scheduler$', 'scheduler/cjs/scheduler.production.min.js')\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n }\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('miniPlugin')\n .tap(args => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n","\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyH5WebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, chain)\n setLoader(framework, chain)\n setPlugin(ctx, framework, chain)\n\n chain.merge({\n module: {\n rule: {\n 'process-import-taro': {\n test: /taro-h5[\\\\/]dist[\\\\/]index/,\n loader: require.resolve('./api-loader')\n }\n }\n }\n })\n}\n\nfunction setAlias (ctx: IPluginContext, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n if (config.h5?.useHtmlComponents) {\n alias.set('@tarojs/components$', '@tarojs/components-react/index')\n } else {\n alias.set('@tarojs/components$', '@tarojs/components/dist-h5/react')\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('mainPlugin')\n .tap(args => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n\nfunction setPlugin (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n\n if (\n process.env.NODE_ENV !== 'production' &&\n config.h5?.devServer?.hot !== false\n ) {\n // 默认开启 fast-refresh\n if (framework === 'react') {\n chain\n .plugin('fastRefreshPlugin')\n .use(require('@pmmmwh/react-refresh-webpack-plugin'))\n } else if (framework === 'preact') {\n chain\n .plugin('fastRefreshPlugin')\n .use(require('@prefresh/webpack'))\n }\n }\n}\n","import { modifyMiniWebpackChain } from './webpack.mini'\nimport { modifyH5WebpackChain } from './webpack.h5'\n\nimport type { IPluginContext } from '@tarojs/service'\n\nexport type Frameworks = 'react' | 'preact' | 'nerv'\n\nexport default (ctx: IPluginContext) => {\n const { framework } = ctx.initialConfig\n\n if (framework !== 'react' && framework !== 'nerv' && framework !== 'preact') return\n\n ctx.modifyWebpackChain(({ chain }) => {\n // 通用\n setAlias(framework, chain)\n chain\n .plugin('definePlugin')\n .tap(args => {\n const config = args[0]\n config.__TARO_FRAMEWORK__ = `\"${framework}\"`\n return args\n })\n\n if (process.env.TARO_ENV === 'h5') {\n // H5\n modifyH5WebpackChain(ctx, framework, chain)\n } else {\n // 小程序\n modifyMiniWebpackChain(ctx, framework, chain)\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 }\n}\n"],"names":["acorn","walk","setAlias","setLoader"],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -3,7 +3,11 @@ import { isFunction, isArray, EMPTY_OBJ, ensure } from '@tarojs/shared';
3
3
 
4
4
  const HOOKS_APP_ID = 'taro-app';
5
5
  function isClassComponent(R, component) {
6
+ var _a;
6
7
  const prototype = component.prototype;
8
+ // For React Redux
9
+ if ((_a = component.displayName) === null || _a === void 0 ? void 0 : _a.includes('Connect'))
10
+ return false;
7
11
  return (isFunction(component.render) ||
8
12
  !!(prototype === null || prototype === void 0 ? void 0 : prototype.isReactComponent) ||
9
13
  prototype instanceof R.Component // compat for some others react-like library
@@ -40,7 +44,7 @@ let h$1;
40
44
  let ReactDOM$1;
41
45
  const pageKeyId = incrementId();
42
46
  const hooks$1 = container.get(SERVICE_IDENTIFIER.Hooks);
43
- function setReconciler() {
47
+ function setReconciler(ReactDOM) {
44
48
  var _a;
45
49
  hooks$1.getLifecycle = function (instance, lifecycle) {
46
50
  lifecycle = lifecycle.replace(/^on(Show|Hide)$/, 'componentDid$1');
@@ -50,7 +54,7 @@ function setReconciler() {
50
54
  event.type = event.type.replace(/-/g, '');
51
55
  });
52
56
  hooks$1.batchedEventUpdates = function (cb) {
53
- ReactDOM$1.unstable_batchedUpdates(cb);
57
+ ReactDOM.unstable_batchedUpdates(cb);
54
58
  };
55
59
  hooks$1.mergePageInstance = function (prev, next) {
56
60
  if (!prev || !next)
@@ -79,7 +83,7 @@ function setReconciler() {
79
83
  });
80
84
  };
81
85
  hooks$1.getDOMNode = inst => {
82
- return ReactDOM$1.findDOMNode(inst);
86
+ return ReactDOM.findDOMNode(inst);
83
87
  };
84
88
  }
85
89
  }
@@ -148,7 +152,7 @@ function createReactApp(App, react, dom, config) {
148
152
  const appInstanceRef = react.createRef();
149
153
  const isReactComponent = isClassComponent(R$1, App);
150
154
  let appWrapper;
151
- setReconciler();
155
+ setReconciler(ReactDOM$1);
152
156
  function getAppInstance() {
153
157
  return appInstanceRef.current;
154
158
  }
@@ -250,18 +254,18 @@ function createReactApp(App, react, dom, config) {
250
254
  // class component, componentDidShow
251
255
  (_a = app === null || app === void 0 ? void 0 : app.componentDidShow) === null || _a === void 0 ? void 0 : _a.call(app, options);
252
256
  // functional component, useDidShow
253
- triggerAppHook('onShow');
257
+ triggerAppHook('onShow', options);
254
258
  }
255
259
  }),
256
260
  [ONHIDE]: setDefaultDescriptor({
257
- value(options) {
261
+ value() {
258
262
  var _a;
259
263
  /**
260
264
  * trigger lifecycle
261
265
  */
262
266
  const app = getAppInstance();
263
267
  // class component, componentDidHide
264
- (_a = app === null || app === void 0 ? void 0 : app.componentDidHide) === null || _a === void 0 ? void 0 : _a.call(app, options);
268
+ (_a = app === null || app === void 0 ? void 0 : app.componentDidHide) === null || _a === void 0 ? void 0 : _a.call(app);
265
269
  // functional component, useDidHide
266
270
  triggerAppHook('onHide');
267
271
  }
@@ -274,13 +278,13 @@ function createReactApp(App, react, dom, config) {
274
278
  }
275
279
  })
276
280
  });
277
- function triggerAppHook(lifecycle) {
281
+ function triggerAppHook(lifecycle, ...option) {
278
282
  const instance = getPageInstance(HOOKS_APP_ID);
279
283
  if (instance) {
280
284
  const app = getAppInstance();
281
285
  const func = hooks$1.getLifecycle(instance, lifecycle);
282
286
  if (Array.isArray(func)) {
283
- func.forEach(cb => cb.apply(app));
287
+ func.forEach(cb => cb.apply(app, option));
284
288
  }
285
289
  }
286
290
  }
@@ -415,7 +419,7 @@ function initNativeComponentEntry(R, ReactDOM) {
415
419
  key: compId,
416
420
  getCtx,
417
421
  renderComponent(ctx) {
418
- return h(Component, Object.assign(Object.assign({}, (ctx.data || (ctx.data = {})).props), refs));
422
+ return h(Component, Object.assign(Object.assign(Object.assign({}, (ctx.data || (ctx.data = {})).props), refs), { $scope: ctx }));
419
423
  }
420
424
  })
421
425
  };
@@ -436,16 +440,18 @@ function initNativeComponentEntry(R, ReactDOM) {
436
440
  return (components.map(({ element }) => element));
437
441
  }
438
442
  }
439
- setReconciler();
443
+ setReconciler(ReactDOM);
440
444
  const app = document.getElementById('app');
441
445
  ReactDOM.render(h(Entry, {}), app);
442
446
  }
443
447
  function createNativeComponentConfig(Component, react, reactdom, componentConfig) {
448
+ var _a, _b;
444
449
  R = react;
445
450
  h = react.createElement;
446
451
  ReactDOM = reactdom;
447
- setReconciler();
452
+ setReconciler(ReactDOM);
448
453
  const componentObj = {
454
+ options: componentConfig,
449
455
  properties: {
450
456
  props: {
451
457
  type: null,
@@ -473,8 +479,8 @@ function createNativeComponentConfig(Component, react, reactdom, componentConfig
473
479
  Current.app.unmount(this.compId);
474
480
  },
475
481
  pageLifetimes: {
476
- show() {
477
- safeExecute(this.compId, 'onShow');
482
+ show(options) {
483
+ safeExecute(this.compId, 'onShow', options);
478
484
  },
479
485
  hide() {
480
486
  safeExecute(this.compId, 'onHide');
@@ -514,10 +520,33 @@ function createNativeComponentConfig(Component, react, reactdom, componentConfig
514
520
  });
515
521
  }
516
522
  }
523
+ // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。
524
+ if (Component.onShareAppMessage ||
525
+ ((_a = Component.prototype) === null || _a === void 0 ? void 0 : _a.onShareAppMessage) ||
526
+ Component.enableShareAppMessage) {
527
+ componentObj.methods.onShareAppMessage = function (options) {
528
+ const target = options === null || options === void 0 ? void 0 : options.target;
529
+ if (target) {
530
+ const id = target.id;
531
+ const element = document.getElementById(id);
532
+ if (element) {
533
+ target.dataset = element.dataset;
534
+ }
535
+ }
536
+ return safeExecute(this.compId, 'onShareAppMessage', options);
537
+ };
538
+ }
539
+ if (Component.onShareTimeline ||
540
+ ((_b = Component.prototype) === null || _b === void 0 ? void 0 : _b.onShareTimeline) ||
541
+ Component.enableShareTimeline) {
542
+ componentObj.methods.onShareTimeline = function () {
543
+ return safeExecute(this.compId, 'onShareTimeline');
544
+ };
545
+ }
517
546
  return componentObj;
518
547
  }
519
548
 
520
- var _a, _b;
549
+ var _a;
521
550
  const hooks = container.get(SERVICE_IDENTIFIER.Hooks);
522
551
  hooks.initNativeApiImpls || (hooks.initNativeApiImpls = []);
523
552
  hooks.initNativeApiImpls.push(function (taro) {
@@ -526,14 +555,58 @@ hooks.initNativeApiImpls.push(function (taro) {
526
555
  }
527
556
  });
528
557
  if (__TARO_FRAMEWORK__ === 'preact') {
558
+ const options = require('preact').options;
559
+ const oldVNodeHook = options.vnode;
560
+ const oldDiffedHook = options.diffed;
561
+ options.vnode = vnode => {
562
+ const { type, props } = vnode;
563
+ let normalizedProps = props;
564
+ // only normalize props on Element nodes
565
+ if (typeof type === 'string') {
566
+ normalizedProps = {};
567
+ for (let i in props) {
568
+ const value = props[i];
569
+ if (/^on/.test(i)) {
570
+ i = i.toLowerCase();
571
+ }
572
+ normalizedProps[i] = value;
573
+ }
574
+ vnode.props = normalizedProps;
575
+ }
576
+ if (oldVNodeHook)
577
+ oldVNodeHook(vnode);
578
+ };
579
+ options.diffed = function (newVNode) {
580
+ const dom = newVNode._dom;
581
+ const newVNodeProps = newVNode.props;
582
+ if (dom) { /** ElementNode */
583
+ for (const propName in newVNodeProps) {
584
+ const propValue = newVNodeProps[propName];
585
+ if (propValue === false && dom.props[propName] === undefined) {
586
+ // 值为 false 的属性在 Preact 的 diff 中被 removeAttribute 了,这里手动 setAttribute
587
+ // fix https://github.com/NervJS/taro/issues/11197
588
+ dom.setAttribute(propName, propValue);
589
+ }
590
+ }
591
+ }
592
+ if (oldDiffedHook)
593
+ oldDiffedHook(newVNode);
594
+ };
529
595
  (_a = hooks.modifyMpEventImpls) === null || _a === void 0 ? void 0 : _a.push(e => {
530
- if (e.type === 'tap')
531
- e.type = 'click';
532
- });
533
- (_b = hooks.modifyDispatchEventImpls) === null || _b === void 0 ? void 0 : _b.push(e => {
534
596
  const type = e.type;
535
- e.type = type[0].toUpperCase() + type.slice(1);
597
+ if (type === 'tap') {
598
+ e.type = 'click';
599
+ }
600
+ else if (type === 'focus') {
601
+ // 兼容 preact/compat/src/render.js options.vnode 的处理逻辑
602
+ e.type = 'focusin';
603
+ }
604
+ else if (type === 'blur') {
605
+ e.type = 'focusout';
606
+ }
536
607
  });
608
+ // hooks.modifyDispatchEventImpls?.push(e => {
609
+ // })
537
610
  }
538
611
 
539
612
  export { PageContext, R$1 as R, connectReactPage, createNativeComponentConfig, createReactApp, setReconciler, useAddToFavorites, useDidHide, useDidShow, useOptionMenuClick, usePageScroll, usePullDownRefresh, usePullIntercept, useReachBottom, useReady, useResize, useRouter, useScope, useShareAppMessage, useShareTimeline, useTabItemTap, useTitleClick };
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sources":["../src/runtime/utils.ts","../src/runtime/connect.ts","../src/runtime/hooks.ts","../src/runtime/connect-native.ts","../src/runtime/index.ts"],"sourcesContent":["import { isArray, isFunction } from '@tarojs/shared'\nimport { Current } from '@tarojs/runtime'\n\nimport type * as React from 'react'\n\nexport const HOOKS_APP_ID = 'taro-app'\n\nexport function isClassComponent (R: typeof React, component): boolean {\n const prototype = component.prototype\n\n return (\n isFunction(component.render) ||\n !!prototype?.isReactComponent ||\n prototype instanceof R.Component // compat for some others react-like library\n )\n}\n\nexport function ensureIsArray<T> (item: T | T[]): T[] {\n if (isArray(item)) {\n return item\n } else {\n return item ? [item] : []\n }\n}\n\n/**\n * set writable, enumerable to true\n */\nexport function setDefaultDescriptor (obj: Record<string, any>) {\n obj.writable = true\n obj.enumerable = true\n return obj\n}\n\n/**\n * 设置入口的路由参数\n * @param options 小程序传入的参数\n */\nexport function setRouterParams (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n}\n","import { ensure, EMPTY_OBJ } from '@tarojs/shared'\nimport {\n container,\n SERVICE_IDENTIFIER,\n Current,\n document,\n getPageInstance,\n injectPageInstance,\n incrementId\n} from '@tarojs/runtime'\nimport { isClassComponent, ensureIsArray, setDefaultDescriptor, setRouterParams, HOOKS_APP_ID } from './utils'\n\nimport type * as React from 'react'\nimport type { AppConfig } from '@tarojs/taro'\nimport type {\n IHooks,\n AppInstance,\n Instance,\n ReactAppInstance,\n ReactPageComponent,\n PageProps\n} from '@tarojs/runtime'\n\ntype PageComponent = React.CElement<PageProps, React.Component<PageProps, any, any>>\n\n// 初始值设置为 any 主要是为了过 TS 的校验\nexport let PageContext: React.Context<string> = EMPTY_OBJ\nexport let R: typeof React = EMPTY_OBJ\nlet h: typeof React.createElement\nlet ReactDOM\n\nconst pageKeyId = incrementId()\nconst hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\nexport function setReconciler () {\n hooks.getLifecycle = function (instance, lifecycle: string) {\n lifecycle = lifecycle.replace(/^on(Show|Hide)$/, 'componentDid$1')\n return instance[lifecycle]\n }\n\n hooks.modifyMpEventImpls?.push(function (event) {\n event.type = event.type.replace(/-/g, '')\n })\n\n hooks.batchedEventUpdates = function (cb) {\n ReactDOM.unstable_batchedUpdates(cb)\n }\n\n hooks.mergePageInstance = function (prev, next) {\n if (!prev || !next) return\n\n // 子组件使用 lifecycle hooks 注册了生命周期后,会存在 prev,里面是注册的生命周期回调。\n\n // prev 使用 Object.create(null) 创建,H5 的 fast-refresh 可能也会导致存在 prev,要排除这些意外产生的 prev\n if ('constructor' in prev) return\n\n Object.keys(prev).forEach(item => {\n const prevList = prev[item]\n const nextList = ensureIsArray<() => any>(next[item])\n next[item] = nextList.concat(prevList)\n })\n }\n\n if (process.env.TARO_ENV === 'h5') {\n hooks.createPullDownComponent = (\n el: React.FunctionComponent<PageProps> | React.ComponentClass<PageProps>,\n _,\n R: typeof React,\n customWrapper\n ) => {\n const isReactComponent = isClassComponent(R, el)\n\n return R.forwardRef((props, ref) => {\n const newProps: React.Props<any> = { ...props }\n const refs = isReactComponent ? { ref: ref } : {\n forwardedRef: ref,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: ref\n }\n\n return h(\n customWrapper || 'taro-pull-to-refresh',\n null,\n h(el, {\n ...newProps,\n ...refs\n })\n )\n })\n }\n\n hooks.getDOMNode = inst => {\n return ReactDOM.findDOMNode(inst)\n }\n }\n}\n\nexport function connectReactPage (\n R: typeof React,\n id: string\n) {\n return (Page: ReactPageComponent): React.ComponentClass<PageProps> => {\n // eslint-disable-next-line dot-notation\n const isReactComponent = isClassComponent(R, Page)\n const inject = (node?: Instance) => node && injectPageInstance(node, id)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: inject\n }\n\n if (PageContext === EMPTY_OBJ) {\n PageContext = R.createContext('')\n }\n\n return class PageWrapper extends R.Component<PageProps, { hasError: boolean }> {\n state = {\n hasError: false\n }\n\n static getDerivedStateFromError (error: Error) {\n process.env.NODE_ENV !== 'production' && console.warn(error)\n return { hasError: true }\n }\n\n // React 16 uncaught error 会导致整个应用 crash,\n // 目前把错误缩小到页面\n componentDidCatch (error: Error, info: React.ErrorInfo) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(error)\n console.error(info.componentStack)\n }\n }\n\n render () {\n const children = this.state.hasError\n ? []\n : h(PageContext.Provider, { value: id }, h(Page, {\n ...this.props,\n ...refs\n }))\n\n if (process.env.TARO_ENV === 'h5') {\n return h(\n 'div',\n { id, className: 'taro_page' },\n children\n )\n } else {\n return h(\n 'root',\n { id },\n children\n )\n }\n }\n }\n }\n}\n\n/**\n * 桥接小程序 App 构造器和 React 渲染流程\n * @param App 用户编写的入口组件\n * @param react 框架\n * @param dom 框架渲染器\n * @param config 入口组件配置 app.config.js 的内容\n * @returns 传递给 App 构造器的对象 obj :App(obj)\n */\nexport function createReactApp (\n App: React.ComponentClass,\n react: typeof React,\n dom,\n config: AppConfig\n) {\n if (process.env.NODE_ENV !== 'production') {\n ensure(!!dom, '构建 React/Nerv 项目请把 process.env.FRAMEWORK 设置为 \\'react\\'/\\'nerv\\' ')\n }\n\n R = react\n h = react.createElement\n ReactDOM = dom\n const appInstanceRef = react.createRef<ReactAppInstance>()\n const isReactComponent = isClassComponent(R, App)\n let appWrapper: AppWrapper\n\n setReconciler()\n\n function getAppInstance (): ReactAppInstance | null {\n return appInstanceRef.current\n }\n\n class AppWrapper extends R.Component {\n // run createElement() inside the render function to make sure that owner is right\n private pages: Array<() => PageComponent> = []\n private elements: Array<PageComponent> = []\n\n public mount (pageComponent: ReactPageComponent, id: string, cb: () => void) {\n const pageWrapper = connectReactPage(R, id)(pageComponent)\n const key = id + pageKeyId()\n const page = () => h(pageWrapper, { key, tid: id })\n this.pages.push(page)\n this.forceUpdate(cb)\n }\n\n public unmount (id: string, cb: () => void) {\n const elements = this.elements\n const idx = elements.findIndex(item => item.props.tid === id)\n elements.splice(idx, 1)\n this.forceUpdate(cb)\n }\n\n public render () {\n const { pages, elements } = this\n\n while (pages.length > 0) {\n const page = pages.pop()!\n elements.push(page())\n }\n\n let props: React.Props<any> | null = null\n\n if (isReactComponent) {\n props = { ref: appInstanceRef }\n }\n\n return h(\n App,\n props,\n process.env.TARO_ENV === 'h5' ? h('div', null, elements.slice()) : elements.slice()\n )\n }\n }\n\n if (process.env.TARO_ENV !== 'h5') {\n appWrapper = ReactDOM.render?.(h(AppWrapper), document.getElementById('app'))\n }\n\n const [ONLAUNCH, ONSHOW, ONHIDE] = hooks.getMiniLifecycleImpl().app\n\n const appObj: AppInstance = Object.create({\n render (cb: () => void) {\n appWrapper.forceUpdate(cb)\n },\n\n mount (component: ReactPageComponent, id: string, cb: () => void) {\n appWrapper.mount(component, id, cb)\n },\n\n unmount (id: string, cb: () => void) {\n appWrapper.unmount(id, cb)\n }\n }, {\n config: setDefaultDescriptor({\n configurable: true,\n value: config\n }),\n\n [ONLAUNCH]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n if (process.env.TARO_ENV === 'h5') {\n // 由于 H5 路由初始化的时候会清除 app 下的 dom 元素,所以需要在路由初始化后执行 render\n appWrapper = ReactDOM.render?.(h(AppWrapper), document.getElementById(config?.appId || 'app'))\n }\n\n // 用户编写的入口组件实例\n const app = getAppInstance()\n this.$app = app\n\n if (app) {\n // 把 App Class 上挂载的额外属性同步到全局 app 对象中\n if (app.taroGlobalData) {\n const globalData = app.taroGlobalData\n const keys = Object.keys(globalData)\n const descriptors = Object.getOwnPropertyDescriptors(globalData)\n keys.forEach(key => {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: true,\n get () {\n return globalData[key]\n },\n set (value) {\n globalData[key] = value\n }\n })\n })\n Object.defineProperties(this, descriptors)\n }\n\n app.onLaunch?.(options)\n }\n }\n }),\n\n [ONSHOW]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidShow\n app?.componentDidShow?.(options)\n // functional component, useDidShow\n triggerAppHook('onShow')\n }\n }),\n\n [ONHIDE]: setDefaultDescriptor({\n value (options: unknown) {\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidHide\n app?.componentDidHide?.(options)\n // functional component, useDidHide\n triggerAppHook('onHide')\n }\n }),\n\n onPageNotFound: setDefaultDescriptor({\n value (res: unknown) {\n const app = getAppInstance()\n app?.onPageNotFound?.(res)\n }\n })\n })\n\n function triggerAppHook (lifecycle) {\n const instance = getPageInstance(HOOKS_APP_ID)\n if (instance) {\n const app = getAppInstance()\n const func = hooks.getLifecycle(instance, lifecycle)\n if (Array.isArray(func)) {\n func.forEach(cb => cb.apply(app))\n }\n }\n }\n\n Current.app = appObj\n return appObj\n}\n","import { isFunction, isArray } from '@tarojs/shared'\nimport {\n Current,\n getPageInstance,\n injectPageInstance\n} from '@tarojs/runtime'\nimport { PageContext, R as React } from './connect'\nimport { HOOKS_APP_ID } from './utils'\n\nimport type { Func, PageLifeCycle } from '@tarojs/runtime'\n\nconst taroHooks = (lifecycle: keyof PageLifeCycle) => {\n return (fn: Func) => {\n const id = React.useContext(PageContext) || HOOKS_APP_ID\n\n // hold fn ref and keep up to date\n const fnRef = React.useRef(fn)\n if (fnRef.current !== fn) fnRef.current = fn\n\n React.useLayoutEffect(() => {\n let inst = getPageInstance(id)\n let first = false\n if (inst == null) {\n first = true\n inst = Object.create(null)\n }\n\n inst = inst!\n\n // callback is immutable but inner function is up to date\n const callback = (...args: any) => fnRef.current(...args)\n\n if (isFunction(inst[lifecycle])) {\n (inst[lifecycle] as any) = [inst[lifecycle], callback]\n } else {\n (inst[lifecycle] as any) = [\n ...((inst[lifecycle] as any) || []),\n callback\n ]\n }\n\n if (first) {\n injectPageInstance(inst!, id)\n }\n return () => {\n const inst = getPageInstance(id)\n const list = inst![lifecycle]\n if (list === callback) {\n (inst![lifecycle] as any) = undefined\n } else if (isArray(list)) {\n (inst![lifecycle] as any) = list.filter(item => item !== callback)\n }\n }\n }, [])\n }\n}\n\nexport const useDidShow = taroHooks('componentDidShow')\n\nexport const useDidHide = taroHooks('componentDidHide')\n\nexport const usePullDownRefresh = taroHooks('onPullDownRefresh')\n\nexport const useReachBottom = taroHooks('onReachBottom')\n\nexport const usePageScroll = taroHooks('onPageScroll')\n\nexport const useResize = taroHooks('onResize')\n\nexport const useShareAppMessage = taroHooks('onShareAppMessage')\n\nexport const useTabItemTap = taroHooks('onTabItemTap')\n\nexport const useTitleClick = taroHooks('onTitleClick')\n\nexport const useOptionMenuClick = taroHooks('onOptionMenuClick')\n\nexport const usePullIntercept = taroHooks('onPullIntercept')\n\nexport const useShareTimeline = taroHooks('onShareTimeline')\n\nexport const useAddToFavorites = taroHooks('onAddToFavorites')\n\nexport const useReady = taroHooks('onReady')\n\nexport const useRouter = (dynamic = false) => {\n return dynamic ? Current.router : React.useMemo(() => Current.router, [])\n}\n\nexport const useScope = () => undefined\n","import {\n Current,\n document,\n injectPageInstance,\n safeExecute,\n addLeadingSlash,\n incrementId,\n eventHandler\n} from '@tarojs/runtime'\nimport { isClassComponent } from './utils'\nimport { setReconciler } from './connect'\n\nimport type * as React from 'react'\nimport type { PageInstance } from '@tarojs/taro'\nimport type {\n TaroRootElement,\n Instance\n} from '@tarojs/runtime'\n\ndeclare const getCurrentPages: () => PageInstance[]\n\nconst getNativeCompId = incrementId()\nlet R: typeof React\nlet h: typeof React.createElement\nlet ReactDOM\n\nfunction initNativeComponentEntry (R: typeof React, ReactDOM) {\n interface IEntryState {\n components: {\n compId: string\n element: React.ReactElement\n }[]\n }\n\n interface IWrapperProps {\n getCtx: () => any\n renderComponent: (ctx: any) => React.ReactElement\n }\n\n class NativeComponentWrapper extends R.Component<IWrapperProps, Record<any, any>> {\n root = R.createRef<TaroRootElement>()\n ctx = this.props.getCtx()\n\n componentDidMount () {\n this.ctx.component = this\n const rootElement = this.root.current!\n rootElement.ctx = this.ctx\n rootElement.performUpdate(true)\n }\n\n render () {\n return (\n h(\n 'root',\n {\n ref: this.root\n },\n this.props.renderComponent(this.ctx)\n )\n )\n }\n }\n\n class Entry extends R.Component<Record<any, any>, IEntryState> {\n state: IEntryState = {\n components: []\n }\n\n componentDidMount () {\n Current.app = this\n }\n\n mount (Component, compId, getCtx) {\n const isReactComponent = isClassComponent(R, Component)\n const inject = (node?: Instance) => node && injectPageInstance(node, compId)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n reactReduxForwardedRef: inject\n }\n const item = {\n compId,\n element: h(NativeComponentWrapper, {\n key: compId,\n getCtx,\n renderComponent (ctx) {\n return h(Component, { ...(ctx.data ||= {}).props, ...refs })\n }\n })\n }\n this.setState({\n components: [...this.state.components, item]\n })\n }\n\n unmount (compId) {\n const components = this.state.components\n const index = components.findIndex(item => item.compId === compId)\n const next = [...components.slice(0, index), ...components.slice(index + 1)]\n this.setState({\n components: next\n })\n }\n\n render () {\n const components = this.state.components\n return (\n components.map(({ element }) => element)\n )\n }\n }\n\n setReconciler()\n\n const app = document.getElementById('app')\n\n ReactDOM.render(\n h(Entry, {}),\n app\n )\n}\n\nexport function createNativeComponentConfig (Component, react: typeof React, reactdom, componentConfig) {\n R = react\n h = react.createElement\n ReactDOM = reactdom\n\n setReconciler()\n\n const componentObj = {\n properties: {\n props: {\n type: null,\n value: null,\n observer (_newVal, oldVal) {\n oldVal && this.component.forceUpdate()\n }\n }\n },\n created () {\n if (!Current.app) {\n initNativeComponentEntry(R, ReactDOM)\n }\n },\n attached () {\n setCurrent()\n this.compId = getNativeCompId()\n this.config = componentConfig\n Current.app!.mount!(Component, this.compId, () => this)\n },\n ready () {\n safeExecute(this.compId, 'onReady')\n },\n detached () {\n Current.app!.unmount!(this.compId)\n },\n pageLifetimes: {\n show () {\n safeExecute(this.compId, 'onShow')\n },\n hide () {\n safeExecute(this.compId, 'onHide')\n }\n },\n methods: {\n eh: eventHandler\n }\n }\n\n function setCurrent () {\n const pages = getCurrentPages()\n const currentPage = pages[pages.length - 1]\n if (Current.page === currentPage) return\n\n Current.page = currentPage\n\n const route = (currentPage as any).route || (currentPage as any).__route__\n const router = {\n params: currentPage.options || {},\n path: addLeadingSlash(route),\n onReady: '',\n onHide: '',\n onShow: ''\n }\n Current.router = router\n\n if (!currentPage.options) {\n // 例如在微信小程序中,页面 options 的设置时机比组件 attached 慢\n Object.defineProperty(currentPage, 'options', {\n enumerable: true,\n configurable: true,\n get () {\n return this._optionsValue\n },\n set (value) {\n router.params = value\n this._optionsValue = value\n }\n })\n }\n }\n\n return componentObj\n}\n","import {\n container,\n SERVICE_IDENTIFIER\n} from '@tarojs/runtime'\nimport * as taroHooks from './hooks'\n\nimport type { IHooks } from '@tarojs/runtime'\n\ndeclare const __TARO_FRAMEWORK__: string\n\nconst hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\nhooks.initNativeApiImpls ||= []\nhooks.initNativeApiImpls.push(function (taro) {\n for (const hook in taroHooks) {\n taro[hook] = taroHooks[hook]\n }\n})\n\nif (__TARO_FRAMEWORK__ === 'preact') {\n hooks.modifyMpEventImpls?.push(e => {\n if (e.type === 'tap') e.type = 'click'\n })\n hooks.modifyDispatchEventImpls?.push(e => {\n const type = e.type\n e.type = type[0].toUpperCase() + type.slice(1)\n })\n}\n\nexport * from './hooks'\nexport * from './connect'\nexport * from './connect-native'\n"],"names":["R","h","ReactDOM","hooks","React","taroHooks"],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sources":["../src/runtime/utils.ts","../src/runtime/connect.ts","../src/runtime/hooks.ts","../src/runtime/connect-native.ts","../src/runtime/index.ts"],"sourcesContent":["import { isArray, isFunction } from '@tarojs/shared'\nimport { Current } from '@tarojs/runtime'\n\nimport type * as React from 'react'\n\nexport const HOOKS_APP_ID = 'taro-app'\n\nexport function isClassComponent (R: typeof React, component): boolean {\n const prototype = component.prototype\n\n // For React Redux\n if (component.displayName?.includes('Connect')) return false\n\n return (\n isFunction(component.render) ||\n !!prototype?.isReactComponent ||\n prototype instanceof R.Component // compat for some others react-like library\n )\n}\n\nexport function ensureIsArray<T> (item: T | T[]): T[] {\n if (isArray(item)) {\n return item\n } else {\n return item ? [item] : []\n }\n}\n\n/**\n * set writable, enumerable to true\n */\nexport function setDefaultDescriptor (obj: Record<string, any>) {\n obj.writable = true\n obj.enumerable = true\n return obj\n}\n\n/**\n * 设置入口的路由参数\n * @param options 小程序传入的参数\n */\nexport function setRouterParams (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n}\n","import { ensure, EMPTY_OBJ } from '@tarojs/shared'\nimport {\n container,\n SERVICE_IDENTIFIER,\n Current,\n document,\n getPageInstance,\n injectPageInstance,\n incrementId\n} from '@tarojs/runtime'\nimport { isClassComponent, ensureIsArray, setDefaultDescriptor, setRouterParams, HOOKS_APP_ID } from './utils'\n\nimport type * as React from 'react'\nimport type { AppConfig } from '@tarojs/taro'\nimport type {\n IHooks,\n AppInstance,\n Instance,\n ReactAppInstance,\n ReactPageComponent,\n PageProps\n} from '@tarojs/runtime'\n\ntype PageComponent = React.CElement<PageProps, React.Component<PageProps, any, any>>\n\n// 初始值设置为 any 主要是为了过 TS 的校验\nexport let PageContext: React.Context<string> = EMPTY_OBJ\nexport let R: typeof React = EMPTY_OBJ\nlet h: typeof React.createElement\nlet ReactDOM\n\nconst pageKeyId = incrementId()\nconst hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\nexport function setReconciler (ReactDOM) {\n hooks.getLifecycle = function (instance, lifecycle: string) {\n lifecycle = lifecycle.replace(/^on(Show|Hide)$/, 'componentDid$1')\n return instance[lifecycle]\n }\n\n hooks.modifyMpEventImpls?.push(function (event) {\n event.type = event.type.replace(/-/g, '')\n })\n\n hooks.batchedEventUpdates = function (cb) {\n ReactDOM.unstable_batchedUpdates(cb)\n }\n\n hooks.mergePageInstance = function (prev, next) {\n if (!prev || !next) return\n\n // 子组件使用 lifecycle hooks 注册了生命周期后,会存在 prev,里面是注册的生命周期回调。\n\n // prev 使用 Object.create(null) 创建,H5 的 fast-refresh 可能也会导致存在 prev,要排除这些意外产生的 prev\n if ('constructor' in prev) return\n\n Object.keys(prev).forEach(item => {\n const prevList = prev[item]\n const nextList = ensureIsArray<() => any>(next[item])\n next[item] = nextList.concat(prevList)\n })\n }\n\n if (process.env.TARO_ENV === 'h5') {\n hooks.createPullDownComponent = (\n el: React.FunctionComponent<PageProps> | React.ComponentClass<PageProps>,\n _,\n R: typeof React,\n customWrapper\n ) => {\n const isReactComponent = isClassComponent(R, el)\n\n return R.forwardRef((props, ref) => {\n const newProps: React.Props<any> = { ...props }\n const refs = isReactComponent ? { ref: ref } : {\n forwardedRef: ref,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: ref\n }\n\n return h(\n customWrapper || 'taro-pull-to-refresh',\n null,\n h(el, {\n ...newProps,\n ...refs\n })\n )\n })\n }\n\n hooks.getDOMNode = inst => {\n return ReactDOM.findDOMNode(inst)\n }\n }\n}\n\nexport function connectReactPage (\n R: typeof React,\n id: string\n) {\n return (Page: ReactPageComponent): React.ComponentClass<PageProps> => {\n // eslint-disable-next-line dot-notation\n const isReactComponent = isClassComponent(R, Page)\n const inject = (node?: Instance) => node && injectPageInstance(node, id)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: inject\n }\n\n if (PageContext === EMPTY_OBJ) {\n PageContext = R.createContext('')\n }\n\n return class PageWrapper extends R.Component<PageProps, { hasError: boolean }> {\n state = {\n hasError: false\n }\n\n static getDerivedStateFromError (error: Error) {\n process.env.NODE_ENV !== 'production' && console.warn(error)\n return { hasError: true }\n }\n\n // React 16 uncaught error 会导致整个应用 crash,\n // 目前把错误缩小到页面\n componentDidCatch (error: Error, info: React.ErrorInfo) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(error)\n console.error(info.componentStack)\n }\n }\n\n render () {\n const children = this.state.hasError\n ? []\n : h(PageContext.Provider, { value: id }, h(Page, {\n ...this.props,\n ...refs\n }))\n\n if (process.env.TARO_ENV === 'h5') {\n return h(\n 'div',\n { id, className: 'taro_page' },\n children\n )\n } else {\n return h(\n 'root',\n { id },\n children\n )\n }\n }\n }\n }\n}\n\n/**\n * 桥接小程序 App 构造器和 React 渲染流程\n * @param App 用户编写的入口组件\n * @param react 框架\n * @param dom 框架渲染器\n * @param config 入口组件配置 app.config.js 的内容\n * @returns 传递给 App 构造器的对象 obj :App(obj)\n */\nexport function createReactApp (\n App: React.ComponentClass,\n react: typeof React,\n dom,\n config: AppConfig\n) {\n if (process.env.NODE_ENV !== 'production') {\n ensure(!!dom, '构建 React/Nerv 项目请把 process.env.FRAMEWORK 设置为 \\'react\\'/\\'nerv\\' ')\n }\n\n R = react\n h = react.createElement\n ReactDOM = dom\n const appInstanceRef = react.createRef<ReactAppInstance>()\n const isReactComponent = isClassComponent(R, App)\n let appWrapper: AppWrapper\n\n setReconciler(ReactDOM)\n\n function getAppInstance (): ReactAppInstance | null {\n return appInstanceRef.current\n }\n\n class AppWrapper extends R.Component {\n // run createElement() inside the render function to make sure that owner is right\n private pages: Array<() => PageComponent> = []\n private elements: Array<PageComponent> = []\n\n public mount (pageComponent: ReactPageComponent, id: string, cb: () => void) {\n const pageWrapper = connectReactPage(R, id)(pageComponent)\n const key = id + pageKeyId()\n const page = () => h(pageWrapper, { key, tid: id })\n this.pages.push(page)\n this.forceUpdate(cb)\n }\n\n public unmount (id: string, cb: () => void) {\n const elements = this.elements\n const idx = elements.findIndex(item => item.props.tid === id)\n elements.splice(idx, 1)\n this.forceUpdate(cb)\n }\n\n public render () {\n const { pages, elements } = this\n\n while (pages.length > 0) {\n const page = pages.pop()!\n elements.push(page())\n }\n\n let props: React.Props<any> | null = null\n\n if (isReactComponent) {\n props = { ref: appInstanceRef }\n }\n\n return h(\n App,\n props,\n process.env.TARO_ENV === 'h5' ? h('div', null, elements.slice()) : elements.slice()\n )\n }\n }\n\n if (process.env.TARO_ENV !== 'h5') {\n appWrapper = ReactDOM.render?.(h(AppWrapper), document.getElementById('app'))\n }\n\n const [ONLAUNCH, ONSHOW, ONHIDE] = hooks.getMiniLifecycleImpl().app\n\n const appObj: AppInstance = Object.create({\n render (cb: () => void) {\n appWrapper.forceUpdate(cb)\n },\n\n mount (component: ReactPageComponent, id: string, cb: () => void) {\n appWrapper.mount(component, id, cb)\n },\n\n unmount (id: string, cb: () => void) {\n appWrapper.unmount(id, cb)\n }\n }, {\n config: setDefaultDescriptor({\n configurable: true,\n value: config\n }),\n\n [ONLAUNCH]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n if (process.env.TARO_ENV === 'h5') {\n // 由于 H5 路由初始化的时候会清除 app 下的 dom 元素,所以需要在路由初始化后执行 render\n appWrapper = ReactDOM.render?.(h(AppWrapper), document.getElementById(config?.appId || 'app'))\n }\n\n // 用户编写的入口组件实例\n const app = getAppInstance()\n this.$app = app\n\n if (app) {\n // 把 App Class 上挂载的额外属性同步到全局 app 对象中\n if (app.taroGlobalData) {\n const globalData = app.taroGlobalData\n const keys = Object.keys(globalData)\n const descriptors = Object.getOwnPropertyDescriptors(globalData)\n keys.forEach(key => {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: true,\n get () {\n return globalData[key]\n },\n set (value) {\n globalData[key] = value\n }\n })\n })\n Object.defineProperties(this, descriptors)\n }\n\n app.onLaunch?.(options)\n }\n }\n }),\n\n [ONSHOW]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidShow\n app?.componentDidShow?.(options)\n // functional component, useDidShow\n triggerAppHook('onShow', options)\n }\n }),\n\n [ONHIDE]: setDefaultDescriptor({\n value () {\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidHide\n app?.componentDidHide?.()\n // functional component, useDidHide\n triggerAppHook('onHide')\n }\n }),\n\n onPageNotFound: setDefaultDescriptor({\n value (res: unknown) {\n const app = getAppInstance()\n app?.onPageNotFound?.(res)\n }\n })\n })\n\n function triggerAppHook (lifecycle, ...option) {\n const instance = getPageInstance(HOOKS_APP_ID)\n if (instance) {\n const app = getAppInstance()\n const func = hooks.getLifecycle(instance, lifecycle)\n if (Array.isArray(func)) {\n func.forEach(cb => cb.apply(app, option))\n }\n }\n }\n\n Current.app = appObj\n return appObj\n}\n","import { isFunction, isArray } from '@tarojs/shared'\nimport {\n Current,\n getPageInstance,\n injectPageInstance\n} from '@tarojs/runtime'\nimport { PageContext, R as React } from './connect'\nimport { HOOKS_APP_ID } from './utils'\n\nimport type { Func, PageLifeCycle } from '@tarojs/runtime'\n\nconst taroHooks = (lifecycle: keyof PageLifeCycle) => {\n return (fn: Func) => {\n const id = React.useContext(PageContext) || HOOKS_APP_ID\n\n // hold fn ref and keep up to date\n const fnRef = React.useRef(fn)\n if (fnRef.current !== fn) fnRef.current = fn\n\n React.useLayoutEffect(() => {\n let inst = getPageInstance(id)\n let first = false\n if (inst == null) {\n first = true\n inst = Object.create(null)\n }\n\n inst = inst!\n\n // callback is immutable but inner function is up to date\n const callback = (...args: any) => fnRef.current(...args)\n\n if (isFunction(inst[lifecycle])) {\n (inst[lifecycle] as any) = [inst[lifecycle], callback]\n } else {\n (inst[lifecycle] as any) = [\n ...((inst[lifecycle] as any) || []),\n callback\n ]\n }\n\n if (first) {\n injectPageInstance(inst!, id)\n }\n return () => {\n const inst = getPageInstance(id)\n const list = inst![lifecycle]\n if (list === callback) {\n (inst![lifecycle] as any) = undefined\n } else if (isArray(list)) {\n (inst![lifecycle] as any) = list.filter(item => item !== callback)\n }\n }\n }, [])\n }\n}\n\nexport const useDidShow = taroHooks('componentDidShow')\n\nexport const useDidHide = taroHooks('componentDidHide')\n\nexport const usePullDownRefresh = taroHooks('onPullDownRefresh')\n\nexport const useReachBottom = taroHooks('onReachBottom')\n\nexport const usePageScroll = taroHooks('onPageScroll')\n\nexport const useResize = taroHooks('onResize')\n\nexport const useShareAppMessage = taroHooks('onShareAppMessage')\n\nexport const useTabItemTap = taroHooks('onTabItemTap')\n\nexport const useTitleClick = taroHooks('onTitleClick')\n\nexport const useOptionMenuClick = taroHooks('onOptionMenuClick')\n\nexport const usePullIntercept = taroHooks('onPullIntercept')\n\nexport const useShareTimeline = taroHooks('onShareTimeline')\n\nexport const useAddToFavorites = taroHooks('onAddToFavorites')\n\nexport const useReady = taroHooks('onReady')\n\nexport const useRouter = (dynamic = false) => {\n return dynamic ? Current.router : React.useMemo(() => Current.router, [])\n}\n\nexport const useScope = () => undefined\n","import {\n Current,\n document,\n injectPageInstance,\n safeExecute,\n addLeadingSlash,\n incrementId,\n eventHandler\n} from '@tarojs/runtime'\nimport { isClassComponent } from './utils'\nimport { setReconciler } from './connect'\n\nimport type * as React from 'react'\nimport type { PageInstance } from '@tarojs/taro'\nimport type {\n TaroRootElement,\n Instance\n} from '@tarojs/runtime'\n\ndeclare const getCurrentPages: () => PageInstance[]\n\nconst getNativeCompId = incrementId()\nlet R: typeof React\nlet h: typeof React.createElement\nlet ReactDOM\n\nfunction initNativeComponentEntry (R: typeof React, ReactDOM) {\n interface IEntryState {\n components: {\n compId: string\n element: React.ReactElement\n }[]\n }\n\n interface IWrapperProps {\n getCtx: () => any\n renderComponent: (ctx: any) => React.ReactElement\n }\n\n class NativeComponentWrapper extends R.Component<IWrapperProps, Record<any, any>> {\n root = R.createRef<TaroRootElement>()\n ctx = this.props.getCtx()\n\n componentDidMount () {\n this.ctx.component = this\n const rootElement = this.root.current!\n rootElement.ctx = this.ctx\n rootElement.performUpdate(true)\n }\n\n render () {\n return (\n h(\n 'root',\n {\n ref: this.root\n },\n this.props.renderComponent(this.ctx)\n )\n )\n }\n }\n\n class Entry extends R.Component<Record<any, any>, IEntryState> {\n state: IEntryState = {\n components: []\n }\n\n componentDidMount () {\n Current.app = this\n }\n\n mount (Component, compId, getCtx) {\n const isReactComponent = isClassComponent(R, Component)\n const inject = (node?: Instance) => node && injectPageInstance(node, compId)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n reactReduxForwardedRef: inject\n }\n const item = {\n compId,\n element: h(NativeComponentWrapper, {\n key: compId,\n getCtx,\n renderComponent (ctx) {\n return h(Component, { ...(ctx.data ||= {}).props, ...refs, $scope: ctx })\n }\n })\n }\n this.setState({\n components: [...this.state.components, item]\n })\n }\n\n unmount (compId) {\n const components = this.state.components\n const index = components.findIndex(item => item.compId === compId)\n const next = [...components.slice(0, index), ...components.slice(index + 1)]\n this.setState({\n components: next\n })\n }\n\n render () {\n const components = this.state.components\n return (\n components.map(({ element }) => element)\n )\n }\n }\n\n setReconciler(ReactDOM)\n\n const app = document.getElementById('app')\n\n ReactDOM.render(\n h(Entry, {}),\n app\n )\n}\n\nexport function createNativeComponentConfig (Component, react: typeof React, reactdom, componentConfig) {\n R = react\n h = react.createElement\n ReactDOM = reactdom\n\n setReconciler(ReactDOM)\n\n const componentObj: Record<string, any> = {\n options: componentConfig,\n properties: {\n props: {\n type: null,\n value: null,\n observer (_newVal, oldVal) {\n oldVal && this.component.forceUpdate()\n }\n }\n },\n created () {\n if (!Current.app) {\n initNativeComponentEntry(R, ReactDOM)\n }\n },\n attached () {\n setCurrent()\n this.compId = getNativeCompId()\n this.config = componentConfig\n Current.app!.mount!(Component, this.compId, () => this)\n },\n ready () {\n safeExecute(this.compId, 'onReady')\n },\n detached () {\n Current.app!.unmount!(this.compId)\n },\n pageLifetimes: {\n show (options) {\n safeExecute(this.compId, 'onShow', options)\n },\n hide () {\n safeExecute(this.compId, 'onHide')\n }\n },\n methods: {\n eh: eventHandler\n }\n }\n\n function setCurrent () {\n const pages = getCurrentPages()\n const currentPage = pages[pages.length - 1]\n if (Current.page === currentPage) return\n\n Current.page = currentPage\n\n const route = (currentPage as any).route || (currentPage as any).__route__\n const router = {\n params: currentPage.options || {},\n path: addLeadingSlash(route),\n onReady: '',\n onHide: '',\n onShow: ''\n }\n Current.router = router\n\n if (!currentPage.options) {\n // 例如在微信小程序中,页面 options 的设置时机比组件 attached 慢\n Object.defineProperty(currentPage, 'options', {\n enumerable: true,\n configurable: true,\n get () {\n return this._optionsValue\n },\n set (value) {\n router.params = value\n this._optionsValue = value\n }\n })\n }\n }\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n if (\n Component.onShareAppMessage ||\n Component.prototype?.onShareAppMessage ||\n Component.enableShareAppMessage\n ) {\n componentObj.methods.onShareAppMessage = function (options) {\n const target = options?.target\n if (target) {\n const id = target.id\n const element = document.getElementById(id)\n if (element) {\n target!.dataset = element.dataset\n }\n }\n return safeExecute(this.compId, 'onShareAppMessage', options)\n }\n }\n if (\n Component.onShareTimeline ||\n Component.prototype?.onShareTimeline ||\n Component.enableShareTimeline\n ) {\n componentObj.methods.onShareTimeline = function () {\n return safeExecute(this.compId, 'onShareTimeline')\n }\n }\n\n return componentObj\n}\n","import {\n container,\n SERVICE_IDENTIFIER\n} from '@tarojs/runtime'\nimport * as taroHooks from './hooks'\n\nimport type { IHooks } from '@tarojs/runtime'\n\ndeclare const __TARO_FRAMEWORK__: string\n\nconst hooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\nhooks.initNativeApiImpls ||= []\nhooks.initNativeApiImpls.push(function (taro) {\n for (const hook in taroHooks) {\n taro[hook] = taroHooks[hook]\n }\n})\n\nif (__TARO_FRAMEWORK__ === 'preact') {\n const options = require('preact').options\n const oldVNodeHook = options.vnode\n const oldDiffedHook = options.diffed\n options.vnode = vnode => {\n const { type, props } = vnode\n let normalizedProps = props\n\n // only normalize props on Element nodes\n if (typeof type === 'string') {\n normalizedProps = {}\n\n for (let i in props) {\n const value = props[i]\n\n if (/^on/.test(i)) {\n i = i.toLowerCase()\n }\n\n normalizedProps[i] = value\n }\n\n vnode.props = normalizedProps\n }\n\n if (oldVNodeHook) oldVNodeHook(vnode)\n }\n options.diffed = function (newVNode) {\n const dom = newVNode._dom\n const newVNodeProps = newVNode.props\n if (dom) { /** ElementNode */\n for (const propName in newVNodeProps) {\n const propValue = newVNodeProps[propName]\n if (propValue === false && dom.props[propName] === undefined) {\n // 值为 false 的属性在 Preact 的 diff 中被 removeAttribute 了,这里手动 setAttribute\n // fix https://github.com/NervJS/taro/issues/11197\n dom.setAttribute(propName, propValue)\n }\n }\n }\n if (oldDiffedHook) oldDiffedHook(newVNode)\n }\n\n hooks.modifyMpEventImpls?.push(e => {\n const type = e.type\n if (type === 'tap') {\n e.type = 'click'\n } else if (type === 'focus') {\n // 兼容 preact/compat/src/render.js options.vnode 的处理逻辑\n e.type = 'focusin'\n } else if (type === 'blur') {\n e.type = 'focusout'\n }\n })\n // hooks.modifyDispatchEventImpls?.push(e => {\n // })\n}\n\nexport * from './hooks'\nexport * from './connect'\nexport * from './connect-native'\n"],"names":["R","h","ReactDOM","hooks","React","taroHooks"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/plugin-framework-react",
3
- "version": "3.4.0-beta.2",
3
+ "version": "3.4.2",
4
4
  "description": "React/Preact/Nerv 框架插件",
5
5
  "author": "drchan",
6
6
  "homepage": "https://github.com/nervjs/taro",
@@ -27,14 +27,14 @@
27
27
  "dependencies": {
28
28
  "@pmmmwh/react-refresh-webpack-plugin": "0.4.3",
29
29
  "@prefresh/webpack": "^3.2.3",
30
- "@tarojs/runtime": "3.4.0-beta.2",
31
- "@tarojs/shared": "3.4.0-beta.2",
30
+ "@tarojs/runtime": "3.4.2",
31
+ "@tarojs/shared": "3.4.2",
32
32
  "acorn": "^8.0.4",
33
33
  "acorn-walk": "^8.0.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@tarojs/service": "3.4.0-beta.2",
37
- "@tarojs/taro": "3.4.0-beta.2"
36
+ "@tarojs/service": "3.4.2",
37
+ "@tarojs/taro": "3.4.2"
38
38
  },
39
- "gitHead": "ac3eb29f11aec15d25e061775d9e970efabc2c98"
39
+ "gitHead": "26b329326c6a7da652e8d712ee33df01ab8d2d0e"
40
40
  }