umi支持ie11吗,脚手架生成的项目一个代码没改ie11都跑不起来

Created on 11 Nov 2020  ·  28Comments  ·  Source: umijs/umi

添加了
targets: { ie: 11, },
其他一个代码没改,IE11跑不起来。

type(bug)

Most helpful comment

好像是 umijs/utils 中有代码没转义
如下配置就可以支持ie11了

nodeModulesTransform: {
type: 'none',
exclude: ['@umijs/utils'],
},

All 28 comments

项目做了一半了,这有点坑啊。

dva 的 immer先弄false是可以跑的

@Slebee
是加这个配置吗
dva: { immer: false },
还是不行。

@Slebee
是加这个配置吗
dva: { immer: false },
还是不行。

具体看报错了,我们项目前些天也是突然发现ie11不行,我用官方脚手架测试过是dva immer的问题,你的应该是其他报错?

报了语法错误,定位是在这一行
企业微信截图_16050771343453

就是这里

同样的问题...edge和低版本的chrome也报错了

同样遇到这个问题,IE11上和低版本的Chrome都报语法错误,无法运行

我本地跑报两个错误,
1、umi.js语法错误,同
#5402
2、devscript.js的语法错误。部署后没有devscript.js了,所以这个问题还好。
umi.js那个报错什么时候可以release?

@ycjcl868
请问这个问题是没时候可以解决?
或者有临时解决方法吗

@KellenHe 请问你这个问题解决了嘛,IE11报同样的错

@xyhui 我也在等,umi好像还没release新的版本,等最新版本发布看会不会把这个bug fix

config.ts文件中修改配置可以跑起来

nodeModulesTransform: {
type: 'all',
},
dva: {
immer: false
},

@asdwsxzc123 实测有效

config.ts文件中修改配置可以跑起来

nodeModulesTransform: {
type: 'all',
},
dva: {
immer: false
},

all 会很慢的,看是哪个包不兼容,加到 https://github.com/umijs/es5-imcompatible-versions

好像是 umijs/utils 中有代码没转义
如下配置就可以支持ie11了

nodeModulesTransform: {
type: 'none',
exclude: ['@umijs/utils'],
},

@ikun @ycjcl868 IE11下仍然报错

function traverseModifyRoutes(routes, access) {
这行报错  const resultRoutes = [].concat(routes).map(resultRoute => {
    const routes = resultRoute.routes;

    if (routes && (routes === null || routes === void 0 ? void 0 : routes.map)) {
      return _objectSpread(_objectSpread({}, resultRoute), {}, {
        // return new route to routes.
        routes: routes === null || routes === void 0 ? void 0 : routes.map(route => _objectSpread({}, route))

问题有解决吗?

image
ie11下框架报错

请问各路神仙们都是如何解决的

nodeModulesTransform
nodeModulesTransform的默认参数是all转换吧?为啥默认参数all都不能跑,配个none+utils会有用?
image

@ikun @ycjcl868 IE11下仍然报错

function traverseModifyRoutes(routes, access) {
这行报错  const resultRoutes = [].concat(routes).map(resultRoute => {
    const routes = resultRoute.routes;

    if (routes && (routes === null || routes === void 0 ? void 0 : routes.map)) {
      return _objectSpread(_objectSpread({}, resultRoute), {}, {
        // return new route to routes.
        routes: routes === null || routes === void 0 ? void 0 : routes.map(route => _objectSpread({}, route))

按文档说法,nodeModulesTransform默认是all,应该全部都会转换。为什么要配成none,这样转换的范围更小了。

看上去是 plugin-access 的问题。https://github.com/umijs/plugins/blob/5ea07023c34aa4f4e5af21ec698ffc274ea50364/packages/plugin-access/src/utils/runtimeUtil.ts#L6

@sorrycc 看看。


@quicklearning123 可以帮忙确认一下是否问题只存在开发环境。https://github.com/umijs/umi/issues/2319#issuecomment-486905133

image

确实 access 问题

image
已验证正常。

给力~!

Was this page helpful?
0 / 5 - 0 ratings