Взаимодействующие с деревом статические методы (вместе с rxjs и lodash) - PullRequest
0 голосов
/ 29 июня 2018

Я хочу использовать 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'
...