如何使用 jspm2 创建导入映射

Posted

技术标签:

【中文标题】如何使用 jspm2 创建导入映射【英文标题】:How to create import map with jspm2 【发布时间】:2019-09-24 04:57:06 【问题描述】:

我正在尝试使用 JSPM 模块加载器从 npm 导入 javascript 包,并使用离线包加载器而不是 CDN。 现在我想添加一个importmap 脚本,这样我就可以在我的模块中导入react 或另一个模块,例如:import React from 'react' 我该怎么做才能做到这一点?

【问题讨论】:

【参考方案1】:

您可以使用importmap 作为标准的新方法来实现您的目标并在您的js 模块文件中导入npm 模块,而无需编写像node_modules/react@16.x.x/index.js 这样的完整路径,只需编写import React from 'react',就像我们以前在webpack 中编写的那样或汇总。 要在安装 jspm 并使用 jspm 安装所需的包后首先运行以下命令:

jspm map -o importmap.json --flat-scope 

它将为 jspm 模块生成一个当前的导入映射,然后创建一个包含导入映射数据的文件。使用 --flat-scope 是必要的,因为 chrome 目前不支持导入地图范围。您必须获取 JSON 文件并将其注入您的 html 文件。首先创建一个bootstrap.js 文件并在其中粘贴以下代码:

class bootstrap
    constructor()
        this.initMapper().then(()=>
            this.lunchApp();
        )
    
     async initMapper() 
        document.head.appendChild(Object.assign(document.createElement('script'), 
            type: 'importmap',
            innerHTML: await (await fetch('/importmap.json')).text()
        ));
    
    lunchApp()
        import('/Client/Assets/js/index.js');
    


var app = new bootstrap();

然后将bootrstrap.js 添加到您的index.html 文件中:

<script defer src="/Client/Assets/js/bootstrap.js"></script>

【讨论】:

以上是关于如何使用 jspm2 创建导入映射的主要内容,如果未能解决你的问题,请参考以下文章

如何将EXCEL格式的项目计划表转换成Project格式文件

如何使用 R Shiny 映射大型数据集?

如何创建要在 SceneKit 中使用的 DAE 文件?

如何使用 golang kubernetes API 创建配置映射和机密

如何在导入数据库期间合并两个 excel 列?

如何使用spring data elasticsearch创建具有指定名称的映射索引?