uni-helper / uni-network

为 uni-app 打造的基于 Promise 的 HTTP 客户端
https://uni-network.netlify.app
MIT License
76 stars 8 forks source link

打包支付宝小程序报错,支付宝开发者工具打开报错 #46

Closed DMzmwh closed 10 months ago

DMzmwh commented 10 months ago

描述问题

引用import un from '@uni-helper/uni-network'后支付宝小程序报错

` error[Parse]: d:\project\uniap\03-code\uni-app\dist\dev\mp-alipay\common\vendor.js: Unexpected token, expected ( --> ......\node_modules\decode-uri-component\index.js:8:0 6 | try { 7 | // Try to decode the entire string first

8 | return [decodeURIComponent(components.join(''))]; 9 | } catch { 10 | // Do nothing 11 | }

help: try fix it by editing the source file note: the code is built into file d:\project\uniapp\03-code\uni-app\dist\dev\mp-alipay\common\vendor.js`

复现

项目地址:https://gitee.com/zmwh/uni-app

系统信息

node -v
v18.19.0

System:
    OS: Windows 10 10.0.19042
    CPU: (4) x64 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
    Memory: 1.40 GB / 7.90 GB
  Binaries:
    Node: 18.19.0 - C:\Program Files\nodejs\node.EXE
    npm: 10.2.3 - C:\Program Files\nodejs\npm.CMD
    pnpm: 8.7.1 - ~\AppData\Roaming\npm\pnpm.CMD
  Browsers:
    Chrome: bookmarks.html
initial_preferences
    Edge: Spartan (44.19041.423.0), Chromium (120.0.2210.91)
    Internet Explorer: 11.0.19041.1

使用的包管理器

pnpm

核对

ModyQyW commented 10 months ago

支付宝小程序不支持 catch 后面没有 (),我想想有什么办法规避

ModyQyW commented 10 months ago

一开始默认使用 qs,但是这个库添加了非常多的 polyfill,占用空间而且没有必要,同时还影响到微信小程序插件使用https://github.com/uni-helper/uni-network/issues/31。

后来就改为使用 query-string,体积小,相对现代,现在暴露出的问题就是它依赖的 decode-uri-component 和它本身都会有 catch {} 的用法,支付宝小程序不支持。

目前的想法如下:

  1. 支付宝小程序支持,不太可能,支持太慢了
  2. 换用 fast-querystring
  3. 自实现

可能倾向于后面两种。

最近事情太多了,欢迎 PR!

ModyQyW commented 10 months ago

请试试 0.18.0 🙏

ModyQyW commented 10 months ago

@DMzmwh Hi,请问 v0.18.0 解决了你的问题吗?