当前位置:网站首页 > Vue.js开发 > 正文

前端跨域解决方案vue(vue前端跨域问题)



你会发现有 文件里的 字段 (或一个单独的 文件),指定了项目的目标浏览器的范围。这个值会被 @babel/preset-env 和 Autoprefixer 用来确定需要转译的 JavaScript 特性和需要添加的 CSS 浏览器前缀。

现在查阅这里了解如何指定浏览器范围。

一个默认的 Vue CLI 项目会使用 @vue/babel-preset-app,它通过 和 配置来决定项目需要的 polyfill。

默认情况下,它会把 传递给 ,这样它会根据源代码中出现的语言特性自动检测需要的 polyfill。这确保了最终包里 polyfill 数量的最小化。然而,这也意味着如果其中一个依赖需要特殊的 polyfill,默认情况下 Babel 无法将其检测出来。

如果有依赖需要 polyfill,你有几种选择

  1. 如果该依赖基于一个目标环境不支持的 ES 版本撰写: 将其添加到 中的 选项。这会为该依赖同时开启语法转换和根据使用情况检测 polyfill。
  2. 如果该依赖交付了 ES5 代码并显式地列出了需要的 polyfill: 你可以使用 的 polyfills 选项预包含所需要的 polyfill。注意 将被默认包含,因为现在的库依赖 Promise 是非常普遍的。
  3. 如果该依赖交付 ES5 代码,但使用了 ES6+ 特性且没有显式地列出需要的 polyfill (例如 Vuetify):请使用 然后在入口文件添加 。这会根据 目标导入所有 polyfill,这样你就不用再担心依赖的 polyfill 问题了,但是因为包含了一些没有用到的 polyfill 所以最终的包大小可能会增加。

更多细节可查阅 @babel/preset-env 文档。

当使用 Vue CLI 来构建一个库或是 Web Component 时,推荐给 传入 选项。这能够确保你的库或是组件不包含不必要的 polyfills。通常来说,打包 polyfills 应当是最终使用你的库的应用的责任。

有了 Babel 我们可以兼顾所有最新的 ES2015+ 语言特性,但也意味着我们需要交付转译和 polyfill 后的包以支持旧浏览器。这些转译后的包通常都比原生的 ES2015+ 代码会更冗长,运行更慢。现如今绝大多数现代浏览器都已经支持了原生的 ES2015,所以因为要支持更老的浏览器而为它们交付笨重的代码是一种浪费。

Vue CLI 提供了一个“现代模式”帮你解决这个问题。以如下命令为生产环境构建:

Vue CLI 会产生两个应用的版本:一个现代版的包,面向支持 ES modules 的现代浏览器,另一个旧版的包,面向不支持的旧浏览器。

最酷的是这里没有特殊的部署要求。其生成的 HTML 文件会自动使用 Phillip Walton 精彩的博文中讨论到的技术:

  • 现代版的包会通过 在被支持的浏览器中加载;它们还会使用 进行预加载。
  • 旧版的包会通过 加载,并会被支持 ES modules 的浏览器忽略。
  • 一个针对 Safari 10 中 的修复会被自动注入。

对于一个 Hello World 应用来说,现代版的包已经小了 16%。在生产环境下,现代版的包通常都会表现出显著的解析速度和运算速度,从而改善应用的加载性能。

到此这篇前端跨域解决方案vue(vue前端跨域问题)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • jsjsj是什么意思(jsj啥意思)2025-07-15 19:27:05
  • js深拷贝和浅拷贝的区别(js浅拷贝和深拷贝什么时候用)2025-07-15 19:27:05
  • js中深拷贝的方法(js实现深拷贝函数)2025-07-15 19:27:05
  • jsz是哪个明星的缩写(jyz是哪个明星缩写)2025-07-15 19:27:05
  • vue生命周期的钩子函数(vue生命周期钩子函数各阶段特点及可以用来作什么?)2025-07-15 19:27:05
  • redhat操作系统安装教程(redhat6.5系统安装)2025-07-15 19:27:05
  • pcie5.0电源(PCIE5.0电源只有两条线)2025-07-15 19:27:05
  • vue的钩子函数和生命周期详解(vue生命周期常用的四个钩子函数)2025-07-15 19:27:05
  • vue安装步骤(vue2.0安装)2025-07-15 19:27:05
  • kali更换国内源(kali2020.4换源)2025-07-15 19:27:05
  • 全屏图片