-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用mobx 6 时,字节小程序运行时报错 #12979
Comments
@onlyjq04 Mobx 会判断 global 对象上有没有 Symbol、Map、Set 属性进而进行提示: 重点在于 目前可行的 hack 方法是,手动在 app.js 文件中把 Symbol、Map、Set 附在 Taro 的 window 对象上: window.Symbol = Symbol
window.Map = Map
window.Set = Set |
还是报错啊,救急,帮忙再看看怎么处理 |
之前的确疏忽了,没有考虑到 我们可以编写一个 Taro 插件,其作用是在执行用户的
// mobx-plugin/index.ts
import * as path from 'path'
import { isArray, isString } from '@tarojs/shared'
import type { IPluginContext, TaroPlatformBase } from '@tarojs/service'
export default function (ctx: IPluginContext) {
ctx.registerMethod({
name: 'onSetupClose',
fn (platform: TaroPlatformBase) {
const injectedPath = 'post:' + path.resolve(__dirname, './runtime.ts')
if (isArray(platform.runtimePath)) {
platform.runtimePath.push(injectedPath)
} else if (isString(platform.runtimePath)) {
platform.runtimePath = [platform.runtimePath, injectedPath]
}
}
})
} // mobx-plugin/runtime.ts
window.Symbol = Symbol
window.Map = Map
window.Set = Set
// config/index.js
const config = {
plugins: [
require('path').resolve(__dirname, '../mobx-plugin/index.ts')
],
...
} 插件可以存放在目录本地,也可以单独抽取为 npm 包使用。 测试添加 hack 后,百度、字节、支付宝小程序都能正常使用 Mobx6。 |
在开发钉钉小程序中使用的 Mobx6,添加完这个插件运行还是报错
|
抖音开发者工具版本:4.2.0 |
相关平台
字节跳动小程序
复现仓库
https://github.com/onlyjq04/taro-tt-buid-issue.git
小程序基础库: 2.76.0.4
使用框架: React
复现步骤
yarn
yarn dev:tt
查看console报错, 查看了stack之后,通过vendor.js打的log如下
另外,微信小程序可以正常运行。
期望结果
能正常运行
实际结果
不能正常运行
环境信息
The text was updated successfully, but these errors were encountered: