F-loat/ithome-lite

mpvue-router-patch 引用的 query-string ios10版本兼容问题

ltinyho opened this issue · 8 comments

wechatimg1
因为使用了mpvue-router-patch包,但是并没有经过babel处理,导致打包后的vendor.js包含const,经测试,在ios 10版本及以下会出现如图错误。

 {
        test: /\.js$/,
        loader: 'babel-loader?cacheDirectory=true',
        include: [
          /node_modules\/.*mpvue-router-patch.*/,
          // /node_modules\/.*query-string.*/,
        ],
      },
}

我的解决办法是使用babel-loader处理,但是mpvue-router-patch引用的query-string这个包也是使用了const,没有经过babel处理。我将query-string也同样处理后,但是query-string并不是使用es6写法,不知道怎么处理了。

import queryString from 'query-string';
const queryStr = queryString.stringify(query, { encode: false })

改为
import queryString from 'querystring';
const queryStr = queryString.stringify(query)

我将query-string替换为querystring解决了兼容问题。请问怎样配置能解决这个问题的。

可以打开开发工具的 es6 转换试下,另外 mpvue-router-patch 这个库我晚点提供一个 es5 的版本

开发工具转es6会报错,因为我其他的包已经转过了,能提供es5版本的最好了

这个库好说,组件库不知道有没有类似的问题

就是query-string这个包引起的,能用node提供的querystring包吗,或者降低query-string到5.0的版本,这个是用es5写的,6.0不兼容版本的

可以换成 querystring,同时我这边也得转成 es5 吧

感谢

好了应该,我这边简单测了下没问题

嗯嗯,成功解决兼容问题,👍。