javascript - okunabilirliğe zarar vermeden { map } öğesini 'lodash', 'rxjs', 'ramda' kütüphanelerinden aynı anda içe aktarma
Birden fazla importtan map veya merge ya da herhangi başka bir fonksiyon nasıl import edilir?
import { map } from 'lodash';
import { map } from 'rxjs/operators';
import { map } from 'ramda';
Açık cevap şudur:
import { map as _map } from 'lodash';
import { map as rxMap } from 'rxjs/operators';
import { map as RMap } from 'ramda';
Ama bu çirkin ve kodu gizliyor. Bunu bir çözüm değil, bir hack olarak görüyorum, ancak statik analiz sınırlamaları nedeniyle bir geçici çözüm.
Aklıma başka bir yol daha geliyor:
import * as _ from 'lodash';
import { map } from 'rxjs/operators';
import * as R from 'ramda';
Ancak, JS topluluğu buna tree-shaking nedenleriyle olumsuz bakmaktadır. Ancak, bunun sadece 45kb tasarruf sağladığı için aşırı abartıldığını düşünüyorum.
Cevap #1
Temelde kendi yardımcı paketlerinizi oluşturabilirsiniz. Örneğin:
// utils/lodash.js
export { map, get, set } from 'lodash';
// yourScript.js
import * as _ from 'utils/lodash';
Cevap #2
Dürüst olmak gerekirse bu, sizin ya da çalıştığınız kişinin neyi daha çok değerli gördüğüne bağlı. Bazen ekstra 45kb kötü olabilir ama çoğu zaman, özellikle kişisel projelerde, kimsenin umursaması gerekmez. Ve eğer bu, programlamanızı daha verimli hale getirecekse, sizin için en iyi olan neyse onu kullanın.
