javascript - vue.js 的 CDN 和 ESM 构建是什么?
问题描述
鉴于使用的 vue.js(CDN- 或 ESM-)构建,Vue.js 文档说明了不同的语法。什么是 CDN 构建以及什么可以证明两种不同类型的构建具有不同的使用语法?
来自 vue.js 文档:
// CDN build of Vue
const { KeepAlive, Teleport, Transition, TransitionGroup } = Vue
// ESM build of Vue
import { KeepAlive, Teleport, Transition, TransitionGroup } from 'vue'
解决方案
CDN基本上是您以老式方式导入脚本,即:<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
ESM build 代表ES module
你将在项目中安装并使用的包,这要归功于捆绑器(如 Webpack),并像这样使用它:import coolMethod from 'nice-package'
可以说,您通常可以对两种导入执行相同的操作,但 CDN 通常会受到更多限制/不太可定制/不太可优化。所以,如果你可以使用 ESM ,那就去吧。
这篇有趣的文章比较了 CJS、AMD、UMD 和 ESM 变体:https
://dev.to/iggredible/what-the-heck-are-cjs-amd-umd-and-esm-ikm
至于 CDN 的,我d 说它几乎一直是后备和最糟糕的。有关更多信息,您可能应该在此处使用一些 google-fu,因为它超出了 Stackoverflow 的指南。
推荐阅读
- c++ - 使用版本相关数据文件的软件与 32 位系统兼容的最佳实践?
- c++ - 默认参数覆盖 C++
- python - 使用 PIL 将表示项目类型的二维数字数组转换为图像
- google-chrome-extension - 如何覆盖下载的文件名?
- excel - 如何通过 InputBox 删除关于最后一个值的行
- android - 通过再次保存自己来强制观察 LiveData 是不是坏代码?
- java - 自定义 XPATH 以单击复选框元素
- html - 将绝对 div 设置为浏览器的高度
- node.js - 访问 kubernetes pod 中 configMapRef 设置的环境变量
- typescript - WebdriverIO - 如何调试在本地通过但在 CI 上失败的测试(GitHub 操作)