现在所有现代浏览器都支持 javascript 模块,我正在 import
浏览器中试用代码。我们可以从unpkg.comnpm
获取模块,我找到了jspm项目,它将模块包装成浏览器可以使用的格式。npm
但是我仍然遇到问题,尤其是RxJS。从版本 6 开始,RxJS 建议您像这样导入构造函数和运算符:
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';
我收到以下错误:
未捕获的语法错误:请求的模块“ 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 问题。
为了让我们的开发 javascript(直接导入浏览器)看起来像我们最终想要传递给捆绑器的东西,这里的解决方案是什么?