类型
2023年05月30日
一、module
1.1 <script type="module" src="xx 依赖路径"></script>
<script type="module" src="./a.js">
b();
</script>
1.2 <script type="module"> import xx from 'xx 依赖路径' </script>
<script type="module">
import { b } from './b.js';
b();
</script>
1.3 <script type="importmap"> { "imports": { "xx依赖名称": "xx依赖路径" } }</script> <script type="module"> import xx from 'xx 依赖名称' </script>
<script type="importmap">
{
"imports": {
"B": "./b.js"
}
}
</script>
<script type="module">
import { b } from 'B';
b();
</script>
二、importmap
importmap
是Chrome 89
才支持的。它是对import
的一个映射处理,让你控制在js
中使用import
时,到底从哪个url
获取这些库。
<script type="importmap">
{
"imports": {
"B": "./b.js"
}
}
</script>
<script type="module">
import { b } from 'B';
b();
</script>
三、text/javascript
四、application/json
五、systemjs-importmap
SystemJs
是一个通用的模块加载器,有属于自己的模块化规范。在浏览器中通过SystemJs
来加载模块。SystemJS
可兼容到IE11
,但是它对于插件版本要求非常严格,而且变化非常大,兼容性也不是特别好,使用体验也不是很好,所以目前实践中用的非常少。它同样支持import
映射,但是它的语法稍有不同:
<script type="systemjs-importmap">
{
"imports": {
"lodash": "https://unpkg.com/lodash@4.17.10/lodash.js"
}
}
</script>
<script>
async function load (moduleName){
const module = await System.import(moduleName);
return module;
}
load(lodash);
</script>