Я хочу использовать rxjs
и lodash
или ramda
в одном проекте.
Я использую машинопись с операторами импорта модуля ECMAScript. (В ионном проекте с webpack
в качестве модуля модуля)
rxjs
и lodash-es
распространяют операторы импорта следующим образом, чтобы включить встряхивание дерева:
import { map } from 'lodas-es'
import { map } from 'rxjs/operators
Как видите, у этого подхода есть две проблемы:
Конфликты имен (я мог бы использовать псевдоним, но я думаю, что это приведет к еще большей путанице)
Очень общие имена методов, такие как map
, filter
и т. Д., Присутствуют в обеих библиотеках, и вам всегда нужно искать в операторе импорта, какое оно имеется в виду и откуда оно взято.
Подход с использованием статических методов, на мой взгляд, гораздо более читабелен, поскольку он настолько явный.
Я хочу сохранить синтаксис, как в commonjs, а также включить тряску деревьев. Это возможно как-то? Какие у меня есть альтернативы?
// commonjs
const _ = require('lodash')
const Rx = require('rxjs')
_.filter()
Rx.Observable.from([1,2,3]).pipe(Rx.filter())
// esmodule (this does not work, but I would like to use it this way,
// with tree shaking enabled)
import _ from 'lodash'
import Rx from 'rxjs'