在 Node.js 环境下, 可以这样导入全局模块:
import * as _loadash from 'loadash';
Node.js 会自动从 node_modules 目录中去加载对应的模块, 但是浏览器默认不会这样做,因为不知道从哪里加载全局模块。import-maps 就是为了解决浏览器中的全局模块而出现的,基于 Chromium 的浏览器已经实现这个功能。
对于不支持 import-maps 的浏览器, 可以使用 es-module-shims 进行处理。
import-maps 使用 Json 的形式来定义浏览器中的全局模块:
<script type="importmap">
{
"imports": {
"loadash": "/libs/loadash/index.js",
"jquery": "/libs/jquery/index.js",
"three": "/libs/three.js/three.js",
"three/examples/": "/libs/three.js/examples/"
}
}
</script>
全局 ES 模块的定义分两种形式:
通过别名指定模块的地址, 适用于只有一个 js 文件的模块;
通过路径指定模块的目录,适用于多个js文件组成的模块;
有了上面的 importmap 定义, 可以在浏览器环境中这样使用全局模块:import * as _loadash from 'loadash'; // 自动加载 /libs/loadash/index.js
import $ from 'jquery'; // 自动加载 /libs/jquery/index.js
import { Scene, WebGLRenderer } from 'three'; // 自动加载 /libs/three.js/three.js
import { CinematicCamera } from 'three/examples/jsm/cameras/CinematicCamera.js' // 自动加载 /libs/three.js/examples/jsm/cameras/CinematicCamera.js
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?