同时从 'lodash', 'rxjs', 'ramda' 导入 { map } 而不会影响可读性

Dol*_*lan 6 javascript node.js lodash ramda.js

如何一个导入mapmerge或从多个进口任何其他功能?

import { map } from 'lodash';
import { map } from 'rxjs/operators';
import { map } from 'ramda';
Run Code Online (Sandbox Code Playgroud)

显而易见的答案是:

import { map as _map } from 'lodash';
import { map as rxMap } from 'rxjs/operators';
import { map as RMap } from 'ramda';
Run Code Online (Sandbox Code Playgroud)

但这很丑陋,并且掩盖了代码。我认为这是一个 hack,不是解决方案,而是由于静态分析的局限性的一种解决方法

我可以想到另一种方式:

import * as _ from 'lodash';
import { map } from 'rxjs/operators';
import * as R from 'ramda';
Run Code Online (Sandbox Code Playgroud)

然而,由于摇树的原因,JS 社区对此不以为然。但是,我认为它被夸大了只节省了 45kb

Eug*_*akh 6

基本上,您可以创建自己的实用程序包。例如:

// utils/lodash.js
export { map, get, set } from 'lodash';

// yourScript.js
import * as _ from 'utils/lodash';
Run Code Online (Sandbox Code Playgroud)