问题描述:
项目前后端数据传输加解密,引入crypto.js 后,ie浏览器打不开。控制台报错 SCRIPT1006: 缺少 ‘)’
解决:
transpileDependencies
- Type: Array
- Default: []默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来
node_modules里的依赖默认是不会编译的,会导致es6语法在ie中的语法报错,所以需要在vue.config.js中使用transpileDependencies属性配置node_modules中指定哪些文件夹或文件需要编译。
测试配置以下代码发现无效
transpileDependencies: [/[/\\]node_modules[/\\](.+?)?crypto-js(.*)[/\\]src/,// /[/\\]node_modules[/\\](.+?)?element-ui(.*)[/\\]package/,],
修改成以下代码就可以在IE浏览器正常跑项目了
transpileDependencies: ['crypto-js']
根本原因:
检查发现, crypto-js ^4.0.0 有毒 对IE 兼容不友好 (估计是使用了什么 最新语法造成的) ,既然这样,就版本降级, 这里直接找了个 “crypto-js”: “3.2.1” 版本,降级后发现 transpileDependencies 属性都不需要了 IE就能正常,神奇,这令人迷惑的代码,
