ES-Module

Posted 火腿肠烧烤大赛冠军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES-Module相关的知识,希望对你有一定的参考价值。

简单来说就是浏览器及node.js不借助webpack等打包直接引用依赖包的方式

Snowpack 、Vite 为代表的 bundless(随着用户使用加载) 都是使用浏览器的ESM功能

使用方式(浏览器)

script 标签上加 type=“module” 即可

<script type="module">
import  logger  from "./utils.js";

logger("2333");
</script>

使用方式(node)-未尝试

方法一:
将文件后缀名改为 .mjs ,可以在里面放心使用 ESM
方法二:
项目的 package.json 中指定 type 字段为 module :

原理:
.mjs 文件总是以 ES6 模块加载,.cjs 文件总是以 CommonJS 模块加载,.js 文件的加载取决于 package.json 里面 type 字段的设置。如果没有 type 字段,或者的 type 字段为 commonjs ,则 .js 脚本会被解释成 CommonJS 模块。

另外在 Node.js 中使用 ESM ,引入的模块一定要带上文件后缀,这点不是很友好:

以上是关于ES-Module的主要内容,如果未能解决你的问题,请参考以下文章

ES-Module

Vite 从入门到精通,玩转新时代前端构建法则

基于最新 Vite+Vue3+VantUI移动端应用项目搭建

《Vite学习指南---基于腾讯云Webify部署项目》视频课程上线“云+社区”