Теперь, когда все современные браузеры поддерживают модули javascript , я пробую import
код прямо в браузере. Мы можем получить npm
модули из unpkg.com , и я обнаружил проект jspm , который упаковывает npm
модули в формат, который может использоваться браузером.
Но у меня все еще есть проблемы, особенно с RxJS . RxJS, начиная с версии 6, рекомендует импортировать конструкторы и операторы следующим образом:
import { Observable, Subject, ReplaySubject, from, of, range } from 'rxjs';
import { map, filter, switchMap } from 'rxjs/operators';
Но если я попытаюсь сделать это в браузере с помощью:
import { Observable, Subject, ReplaySubject, from, of, range } from 'https://dev.jspm.io/rxjs@6';
import { map, filter, switchMap } from 'https://dev.jspm.io/rxjs@6/operators';
Я получаю ошибки по следующим направлениям:
Uncaught SyntaxError: Запрошенный модуль 'https://dev.jspm.io/rxjs@6/operators' не обеспечивает экспорт с именем' map '
Я могу обойти это, импортировав весь модуль rxjs
и выявив, что мне нужно, как если бы я использовал CDN:
import rxjs from 'https://dev.jspm.io/rxjs@6';
const { Observable } = rxjs;
import operators from 'https://dev.jspm.io/rxjs@6/operators';
const { map } = operators;
но это побеждает то, что команда Rx пытается сделать, чтобы уменьшить окончательный размер пакета и т. Д.
Я уверен, что это не просто проблема RxJS.
Какое решение здесь движется вперед, чтобы наш dev javascript (импортируемый прямо в браузер) выглядел так, как мы хотели бы передать пакету?