【问题标题】:Vue components does not appear on IE11 (Laravel)Vue 组件在 IE11 (Laravel) 上不出现
【发布时间】:2020-01-24 03:49:54
【问题描述】:

我所有的 vue 组件都无法在 IE11 中渲染。查了一下,貌似是IE不支持ES6及以上的原因。

所以我目前的尝试是使用 babel:

我的.babelrc

{
"presets": [
    [
        "@babel/preset-env",
        {
            "debug": true,
            "modules": false,
            "forceAllTransforms": true,
            "useBuiltIns": "usage",
            "targets": "last 1 version, > 1%",
            "corejs": 3
        }
    ]
  ]
}

我正在使用 laravel-mix 编译资产:

const mix = require("laravel-mix")

mix.js("resources/js/app.js", "public/js/app.js")
.sass("resources/sass/app.scss", "public/css/app.css")
.options({
    processCssUrls: false
});

编译运行正常,但我的 vue 组件仍未渲染。

有解决问题的方法吗?

谢谢。

// 解决方案Convert ES6 to ES2015 using babel and laravel-mix

【问题讨论】:

  • 已经看到了。我已经针对 IE:“targets”:“last 1 version, > 1%”,
  • 你使用的是 Babel 6 还是 7?
  • Babel 7 ...15 个字符...
  • 该链接帖子上接受的答案显示了使用 "targets": { "ie": "11" }@vue/app 预设的 Babel 7 解决方案

标签: vue.js babeljs laravel-mix


【解决方案1】:

试试这个。

  1. 安装babel polyfill
npm install --save @babel/polyfill or yarn add @babel/polyfill
  1. 将代码导入@babel/polyfill添加到src/main.js
import '@babel/polyfill'
import Vue from 'vue'
// ...
  1. 修改babel.config.js如下:
module.exports = {
  presets: [
    [
      '@vue/app',
      {
        'useBuiltIns': 'entry'
      }
    ]
  ]
}
  1. 创建 vue.config.js 文件并创建: (如果现有设置已经存在,请添加它们。)
const ansiRegex = require('ansi-regex')

module.exports = {
    ......(기존 설정이 있다면 다음에 추가)
    transpileDependencies: [ansiRegex]
}

注意。使用承诺模式时使用es6-promise

【讨论】:

  • ansiRegex 与 polyfill 有什么关系?基本上你的解决方案和我的一样。
  • 我也不确定“ansi-regex”是什么。但是,此选项用于通过使用 Babel 将依赖项转换为明确的敌人。 'ansi-regex' 是匹配ANSI escape codes 的正则表达式。请参阅与ANSI escape code 相关的内容。 en.wikipedia.org/wiki/ANSI_escape_code希望对你有帮助。
  • 这个解决方案的来源在哪里?或者它对你有用吗?
猜你喜欢
  • 1970-01-01
  • 2021-11-23
  • 2017-10-14
  • 2021-05-13
  • 2018-04-29
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多