Я использую SystemJS для загрузки моего проекта es2015 в браузер.Как импортировать `Observable` из` Rx` (не угловой)
Это то, что я сделал
import {Observable} from 'rxjs/Rx';
const button = document.querySelector('button');
const start$ = Observable.fromEvent(button, 'click');
В этом случае Observable
является undefined
. Так что я попытался
import Observable from 'rxjs/Observable';
В этом случае Observable
является объектом, но Observable.fromEvent
является undefined
(это, кажется, пустой объект)
Наконец я сделал
import Rx from 'rxjs/Rx' // Rx.Observable
, который сделал работу. Любые идеи, почему два других не работали? Я видел код, в котором они использовали их. Каким будет предпочтительный способ импорта Observable
?
ОБНОВЛЕНИЕ: Как указано ниже, все это описано в README. Однако, если я что
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
const start$ = Observable.fromEvent(startButton, 'click');
Я получаю Observable
это undefined
. И если я
import Observable from 'rxjs/Observable';
Observable
является пустой объект снова. fromEvent
не добавляется.
Я использую RxJs 5.1.1 и вот мой index.html/systemjs часть:
<script src="./node_modules/systemjs/dist/system.js"></script>
<script>
SystemJS.config({
baseURL: 'node_modules',
packages: {
'.': {
defaultJSExtensions: 'js'
}
},
map: {
'plugin-babel': 'systemjs-plugin-babel/plugin-babel.js',
'systemjs-babel-build': 'systemjs-plugin-babel/systemjs-babel-browser.js'
},
transpiler: 'plugin-babel'
});
SystemJS.import('/js/main.js');
</script>
После вашего обновления, нет никаких причин, почему этот код не должен работать. Казалось бы, вы можете загрузить модуль, видя, как работает подход 'import Rx from rxjs/Rs'. Как выглядит ваш JS после транспиляции? –
FYI, этот вопрос больше не связан с RxJS, поскольку эта проблема может существовать для любой библиотеки, которую вы пытаетесь импортировать. Возможно, стоит обновить название и вопрос, чтобы отразить это, чтобы вы получили больше ответов systemjs/ecmascript-6. –
Это, похоже, известная проблема с commonjs + systemjs. https://github.com/systemjs/systemjs/issues/334 –