Подтвердить что ты не робот

ES6: импортировать модуль из URL-адреса

Можно ли импортировать javascript-модуль из внешнего url в ES6?

Я пробовал (используя babel- node):

import mymodule from 'http://...mysite.../myscript.js';
// Error: Cannot find module 'http://...mysite.../myscript.js'
4b9b3361

Ответ 1

Спецификация загрузчика модуля и синтаксис импорта/экспорта являются отдельными. Таким образом, это свойство загрузчика модуля (не входит в спецификацию ES). Если вы используете загрузчик модулей, который поддерживает плагины, такие как SystemJS.

Ответ 2

TL; DR:

На данный момент нет.

Длинный ответ:

Существуют два разных спецификатора: ES6 определяет sintax для экспорта/импорта. И есть Loader Spec, который фактически определяет , как загружаются эти модули.

Говорите в сторону, важная часть для нас разработчиков:

JavaScript-загрузчик позволяет средам хоста, таким как Node.js и браузерам, получать и загружать модули по требованию. Он обеспечивает доступный конвейер, чтобы позволить интерфейсные решения для упаковки, такие как Browserify, WebPack и jspm, подключаться к процессу загрузки.

Это разделение обеспечивает единый формат, который разработчики могут использовать во всех средах JavaScript, и отдельный механизм загрузки для каждой среды. Например, Node Loader будет загружать свои модули из файловой системы, используя собственный алгоритм поиска модуля, в то время как загрузчик браузера будет извлекать модули и использовать форматы упаковок, поставляемые в браузере.

(...)

Основная цель состоит в том, чтобы максимально согласовать этот процесс между средами Node и Browser. Например, если программа JavaScript хочет перевести файлы .coffee на JavaScript на лету, Loader определяет "переводить" крюк, который можно использовать. Это позволяет программам участвовать в процессе загрузки, хотя некоторые детали (в частности, процесс получения определенного модуля из его хранилища, определенного хостом) будут отличаться между средами.

Таким образом, мы зависим от среды хоста (node, браузера, babel и т.д.), чтобы разрешать/загружать модули для нас и предоставлять перехваты для процесса.

Ответ 3

Вы также можете использовать scriptjs, который в моем случае требует меньше конфигураций.

var scriptjs = require('scriptjs');

scriptjs('https://api.mapbox.com/mapbox.js/v3.0.1/mapbox.standalone.js', function() {
    L.mapbox.accessToken = 'MyToken';
});