为了账号安全,请及时绑定邮箱和手机立即绑定

webpack 打包 import 这种方式的代码,如何兼容ie8?

webpack 打包 import 这种方式的代码,如何兼容ie8?

一只甜甜圈 2019-03-02 15:04:19
有个问题想请教各位大神,知道的大佬请不吝赐教,万分感谢!webpack 中 使用 import 这种方法,打包后的文件,无法在ie8下运行(其他版本没试过)。谷歌等现代浏览器正常报错:对象不支持 defineProperty 属性或方法代码本身就是几个简单的变量,不存在兼容问题但是使用 require 这种方法打包后的文件,可以在ie下运行。使用import这种方式,怎么让打包后的代码能在id8下运行?使用import这种方式,怎么让打包后的代码能在id8下运行?这是我的 webpack.config.jsconst path = require('path')const UglifyJSPlugin = require('uglifyjs-webpack-plugin');var pkg = require('./package.json');var webpack = require('webpack')const isLog = falsemodule.exports = {    entry: {        ['bestime']: './src/js/bestime/bestime.js',        ['test']: './src/js/test.js'    },    output: {        filename: `js/[name]/[name].${pkg.version}.min.js`,        path: path.resolve(__dirname, 'dist')    },    //插件    plugins: [        new UglifyJSPlugin({            uglifyOptions: {                ie8: true,                ecma: 5,                warnings: false,                output: {                    beautify: false                }            }        })    ],    module: {        rules: [            {                test: /\.js$/,                exclude:/(node_modules|bower_components)/,                use: {                    loader: 'babel-loader'                }            }        ]    }}.babellrc{  "presets": [      ["es2015", {"modules": false}]  ]}package.json "devDependencies": {    "babel-loader": "^7.1.2",    "babel-preset-es2015": "^6.24.1",    "babel-core": "^6.26.0",    "uglifyjs-webpack-plugin": "^1.1.6"  }
查看完整描述

4 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

发现其实 babel 转化是会生成 defineProperty。
presets 试试配置为这样呢presets: [ ['es2015', {"loose": true}] ]

查看完整回答
反对 回复 2019-03-12
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

webpack打包都会把import转为自己的webpack require才对,你看看输出错误是因为import吗?


查看完整回答
反对 回复 2019-03-12
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

module:false改成别的。
让babel处理import语法试试。


哦 对了 你可以试试rollup


查看完整回答
反对 回复 2019-03-12
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

export会被转成defineProperty,你看看是不是这个原因导致的


const Test = {};

export default Test;

// 改成

module.exports = Test;


查看完整回答
反对 回复 2019-03-12
  • 4 回答
  • 0 关注
  • 1729 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信