Skip to content
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

Taro3.3.3编译支付宝端运行报错:TypeError: Function(...) is not a function #13234

Closed
json11 opened this issue Feb 6, 2023 · 17 comments
Labels
F-react Framework - React T-alipay Target - 编译到支付宝小程序 V-3 Version - 3.x

Comments

@json11
Copy link

json11 commented Feb 6, 2023

相关平台

支付宝小程序

小程序基础库: 2.8.3
使用框架: React

复现步骤

项目编译支付宝端正常,用支付宝IDE运行报错TypeError: Function(...) is not a function,页面崩溃

期望结果

页面正常运行

实际结果

页面报错崩溃

环境信息

Taro v3.5.6


  Taro CLI 3.5.6 environment info:
    System:
      OS: macOS 13.1
      Shell: 5.8.1 - /bin/zsh
    Binaries:
      Node: 14.1.0 - ~/.nvm/versions/node/v14.1.0/bin/node
      Yarn: 1.22.10 - ~/.nvm/versions/node/v14.1.0/bin/yarn
      npm: 6.14.4 - ~/.nvm/versions/node/v14.1.0/bin/npm
    npmPackages:
      @tarojs/cli: 3.3.3 => 3.3.3 
      @tarojs/components: 3.3.3 => 3.3.3 
      @tarojs/mini-runner: 3.3.3 => 3.3.3 
      @tarojs/react: 3.3.3 => 3.3.3 
      @tarojs/runtime: 3.3.3 => 3.3.3 
      @tarojs/taro: 3.3.3 => 3.3.3 
      @tarojs/webpack-runner: 3.3.3 => 3.3.3 
      babel-preset-taro: 3.3.3 => 3.3.3 
      eslint-config-taro: 3.3.3 => 3.3.3 
      react: 17.0.2 => 17.0.2 
      taro-ui: ^2.3.4 => 2.3.4 
    npmGlobalPackages:
      typescript: 4.7.2
@taro-bot2 taro-bot2 bot added F-react Framework - React T-alipay Target - 编译到支付宝小程序 V-3 Version - 3.x labels Feb 6, 2023
@TheKonka
Copy link
Member

TheKonka commented Feb 7, 2023

最新版本我试了是可以的,建议要么你升级一下康康,要么你整个能复现的demo

@shanzheng1991
Copy link

我也有同样的问题。
相关平台:钉钉小程序工具
使用框架: React
开发工具:Visual Studio Code
版本: 1.75.0 (user setup)
复现步骤
项目编译钉钉端报错,运行报错TypeError: Function(...) is not a function,模拟器页面崩溃,但是在手机上可以预览
如果注销app.js中
import dva from "./dva.js";
import models from "./models";
模拟器可以显示页面。
Taro v3.5.12
Taro CLI 3.5.12 environment info:
System:
OS: Windows 10
Binaries:
Node: 16.17.1 - D:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - D:\Program Files\nodejs\node_global\yarn.CMD
npm: 8.15.0 - D:\Program Files\nodejs\npm.CMD
报错提示如下。

image

简单demo https://github.com/shanzheng1991/myApp
https://github.com/shanzheng1991/myApp.git master

@TheKonka
Copy link
Member

TheKonka commented Feb 9, 2023

// app.js
import dva from "./dva.js";

这行删掉就正常了

@shanzheng1991
Copy link

shanzheng1991 commented Feb 9, 2023 via email

@TheKonka
Copy link
Member

TheKonka commented Feb 9, 2023

看起来是同样的问题 #12562

@json11
Copy link
Author

json11 commented Feb 9, 2023

// app.js
import dva from "./dva.js";

这行删掉就正常了

我这是老项目,数据管理就是用的dva,所以不能删😃

@yoyo837
Copy link
Contributor

yoyo837 commented Feb 9, 2023

dva早就不维护了吧? 我自己有个项目之前就是这个东西, 有一些问题迟迟不修复, 我就参考它的设计, 自己实现了. 扔掉了 dva

@shanzheng1991
Copy link

dva早就不维护了吧? 我自己有个项目之前就是这个东西, 有一些问题迟迟不修复, 我就参考它的设计, 自己实现了. 扔掉了 dva
弱弱的问一下,不用dva现在还支持哪个状态管理工具?

@yoyo837
Copy link
Contributor

yoyo837 commented Feb 9, 2023

不明白你的意思, dva本身就是二次封装saga而已, 我可以分享我的代码给你看看.

@json11 json11 closed this as completed Feb 9, 2023
@json11
Copy link
Author

json11 commented Feb 9, 2023

哈哈 ……这个方法简单粗暴。但是这行我是需要的啊。而且也没错哈。再微信小程序中可以的,钉钉中不行哎。 @./core": "^7.8.0",下的依赖regenerator-runtime变成了regenerator-runtime "^0.13.11"  不能高于0.13.2,可选0.13.1。固定regenerator-runtime 版本也可以 美好生活 @.  

------------------ 原始邮件 ------------------ 发件人: "NervJS/taro" @.>; 发送时间: 2023年2月9日(星期四) 上午9:34 @.>; @.@.>; 主题: Re: [NervJS/taro] Taro3.3.3编译支付宝端运行报错:TypeError: Function(...) is not a function (Issue #13234) import dva from "./dva.js"; 这行删掉就正常了 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

大佬, 问下项目中的@babel/core依赖的regenerator-runtime版本怎么改。。

@liuguangyong93
Copy link

如果是@babel/runtime中的自主引入的化,该怎么办?降低babel版本嘛?

image

@shanzheng1991
Copy link

哈哈 感谢了。

哈哈 ……这个方法简单粗暴。但是这行我是需要的啊。而且也没错哈。再微信小程序中可以的,钉钉中不行哎。 @./core": "^7.8.0",下的依赖regenerator-runtime变成了regenerator-runtime "^0.13.11"  不能高于0.13.2,可选0.13.1。固定regenerator-runtime 版本也可以 美好生活 _@**._  

------------------ 原始邮件 ------------------ 发件人: "NervJS/taro" _
@.>; 发送时间: 2023年2月9日(星期四) 上午9:34 @._>; _@.@._>; 主题: Re: [NervJS/taro] Taro3.3.3编译支付宝端运行报错:TypeError: Function(...) is not a function (Issue #13234) import dva from "./dva.js"; 这行删掉就正常了 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: _@_.*>

大佬, 问下项目中的@babel/core依赖的regenerator-runtime版本怎么改。。

可以研究一下 yarn 文档里面的 resolutions。有说到怎么降低依赖的依赖的版本号的。但我试了不行哦。

哈哈 ……这个方法简单粗暴。但是这行我是需要的啊。而且也没错哈。再微信小程序中可以的,钉钉中不行哎。 @./core": "^7.8.0",下的依赖regenerator-runtime变成了regenerator-runtime "^0.13.11"  不能高于0.13.2,可选0.13.1。固定regenerator-runtime 版本也可以 美好生活 _@**._  

------------------ 原始邮件 ------------------ 发件人: "NervJS/taro" _
@.>; 发送时间: 2023年2月9日(星期四) 上午9:34 @._>; _@.@._>; 主题: Re: [NervJS/taro] Taro3.3.3编译支付宝端运行报错:TypeError: Function(...) is not a function (Issue #13234) import dva from "./dva.js"; 这行删掉就正常了 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: _@_.*>

大佬, 问下项目中的@babel/core依赖的regenerator-runtime版本怎么改。。
可以研究一下 yarn 文档里面的 resolutions。有说到怎么降低依赖的依赖的版本号的。但我试了不行哦。

@Komorebi4829
Copy link

楼主解决这个问题了吗? 我今天也遇到了

@json11
Copy link
Author

json11 commented Feb 9, 2023

楼主解决这个问题了吗? 我今天也遇到了

我现在是暴力解决了,编译阶段通过脚本把Function("r", "regeneratorRuntime = r")(runtime);这行代码去掉了。
这种方法不太好,大佬们帮看看有没有更优的解法!

@liuguangyong93
Copy link

如果是@babel/runtime中的自主引入的化,该怎么办?降低babel版本嘛?

image

解决了,锁死@babel/runtime和@babel/core版本就行,比如^7.8.0 => 7.8.0,目前最新babel版本是7.20.0,从7.19.0就有这个问题了。所以只需要降低babel即可解决~~

@syx112233
Copy link

楼主解决这个问题了吗? 我今天也遇到了

我现在是暴力解决了,编译阶段通过脚本把Function("r", "regeneratorRuntime = r")(runtime);这行代码去掉了。
这种方法不太好,大佬们帮看看有没有更优的解法!

怎么操作的,我现在也遇到了这个问题

@Komorebi4829
Copy link

楼主解决这个问题了吗? 我今天也遇到了

我现在是暴力解决了,编译阶段通过脚本把Function("r", "regeneratorRuntime = r")(runtime);这行代码去掉了。
这种方法不太好,大佬们帮看看有没有更优的解法!

怎么操作的,我现在也遇到了这个问题

我当时是把dva-core源码拉下来,用rollup自己打包一份, 在App.js中引入. rollup.config.js的配置是

export default {
  input: './src/index.js',
  output: [
    {
      format: 'cjs',
      file: 'dist/dva-core.js',
    },
    {
      format: 'esm',
      file: 'dist/dva-core.esm.js'
    }
  ]
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
F-react Framework - React T-alipay Target - 编译到支付宝小程序 V-3 Version - 3.x
Projects
None yet
Development

No branches or pull requests

7 participants