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的主要内容,如果未能解决你的问题,请参考以下文章