Как создать карту импорта с помощью jspm2 - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь импортировать пакеты javascript из npm с помощью загрузчика модулей JSPM и использовать автономный загрузчик пакетов вместо CDN.
Теперь я хочу добавить скрипт importmap, чтобы я мог импортировать react или другой модуль в моем модуле, например:
import React from 'react'
что я могу сделать, чтобы достичь этого?

1 Ответ

0 голосов
/ 06 мая 2019

вы можете использовать importmap в качестве стандартного нового способа для достижения вашей цели и импортировать модуль npm в файл модуля js, не записывая полный путь, например node_modules/react@16.x.x/index.js, и просто пишите import React from 'react', как ранее мы писали в веб-пакете. или накопительный.
чтобы добиться этого после установки 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>
...