webpack 5 默认不支持低版本浏览器了?

原创
2022/11/17 16:24
阅读数 68

发现用 webpack 5 打包的程序,文件中居然存在这样的 ES6 语法:

var[t,n,a]=e[d],s=!0,i=0;i<t.length;i++

对比看源码是 var [chunkIds, fn, priority] = deferred[i]

/* webpack/runtime/chunk loaded */
(() => {
    var deferred = [];
    __webpack_require__.O = (result, chunkIds, fn, priority) => {
        if (chunkIds) {
            priority = priority || 0;
            for (var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
            deferred[i] = [chunkIds, fn, priority];
            return;
        }
        var notFulfilled = Infinity;
        for (var i = 0; i < deferred.length; i++) {
            var [chunkIds, fn, priority] = deferred[i];
            var fulfilled = true;
            for (var j = 0; j < chunkIds.length; j++) {
                if ((priority & (1 === 0) || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => __webpack_require__.O[key](chunkIds[j]))) {
                    chunkIds.splice(j--, 1);
                } else {
                    fulfilled = false;
                    if (priority < notFulfilled) notFulfilled = priority;
                }
            }
            if (fulfilled) {
                deferred.splice(i--, 1);
                var r = fn();
                if (r !== undefined) result = r;
            }
        }
        return result;
    };
})();

不知道怎么搞了。

解决方案,webpack.config.js 设置 target: ['es5', 'web'],

// otherwise webpack generate es6 runtime output
// https://github.com/webpack/webpack/issues/16159
// https://webpack.js.org/configuration/output/#outputenvironment
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部