Type=”Module” 你了解,但 Type=”Importmap” 你知道吗?

Type=”Module” 你了解,但 Type=”Importmap” 你知道吗?插图亿华云

当ES模块第一次在ECMAScript 2015中被引入,作为在JavaScript中标准化模块系统的一种方式时,它是通过在import语句中指定相对或绝对路径来实现的。

import dayjs from "https://cdn.skypack.dev/dayjs@1.10.7"; // ES modules

console.log(dayjs("2019-01-25").format("YYYY-MM-DDTHH:mm:ssZ[Z]"));

这与模块在其他通用模块系统中的工作方式略有不同,例如CommonJS,以及在使用webpack这样的模块捆绑器时,使用的是更简单的语法。

const dayjs = require(dayjs) // CommonJS

import dayjs from dayjs; // webpack

在这些系统中,通过Node.js运行时或相关的构建工具,导入指定器被映射到一个特定(和版本)的文件。用户只需要在导入语句中应用裸露的模块指定符(通常是包名),围绕模块解析的问题就会被自动解决。

由于开发者已经熟悉了这种从npm导入包的方式,所以需要一个构建步骤来确保以这种方式编写的代码能够在浏览器中运行。这个问题由import maps解决了。从本质上讲,它允许将导入指定器映射到相对或绝对的URL上,这有助于控制模块的解析,而不需要应用构建步骤。

import maps 是怎么工作的

{

"imports": {

"dayjs": "https://cdn.skypack.dev/dayjs@1.10.7",

}

}

import dayjs from dayjs;

console.log(dayjs(2019-01-25).format(YYYY-MM-DDTHH:mm:ssZ[Z]));

THE END
Copyright © 2024 亿华云