fullstack-development / react-redux-starter-kit

Modular starter kit for React+Redux+React Router projects.
https://demo.fullstack-development.com/
MIT License
91 stars 13 forks source link

Оптимизировать импорты из рамды #90

Closed in19farkt closed 4 years ago

in19farkt commented 5 years ago
Zarwlar commented 5 years ago

https://github.com/megawac/babel-plugin-ramda плагин для babel)

in19farkt commented 5 years ago

Жесть конечно :) я даже не подумал для такого гуглить какие-то решения))

kinda-neat commented 4 years ago

поддерживаю оратора с ссылкой на babel-plugin-ramda, надо запилить!

kinda-neat commented 4 years ago

Жесть конечно :) я даже не подумал для такого гуглить какие-то решения))

это кстати, как я понял, распространенная практика такие штуки писать, вот например в antd тоже под это дело есть пакет) https://ant.design/docs/react/introduce#Use-modularized-antd

kinda-neat commented 4 years ago

Смотрели с Степаном бандл на проекте с версией webpack 4.36.1 и у нас без этого плагина попадало в бандл только то, что использовалось (видимо webpack или ts-loader сами это разруливают). Надо чекнуть как с этим здесь и закрывать этот ишью если все ок)

Frolikow commented 4 years ago

Не совсем понял, как это в итоге надо чекнуть) Создал файл, с единственным вызовом рамдовской функции:

import * as R from 'ramda';
// import map from 'ramda/src/map';

const double = (x: number) => x * 2;

R.map(double, [1, 2, 3]);
// map(double, [1, 2, 3]);

1) Попробовал сравнить размер сборки. В случае с import map from 'ramda/src/map';, сборка получилась на 0,9кБ больше чем при import * as R from 'ramda'; 2) Попробовал запустить npm run build:dev. И искал другие рамдовские функции в сборке.

Получается что при прод сборке лишнее из рамды в сборку не попадает, даже с отключеным минифмикатором.

in19farkt commented 4 years ago

Ну что, тогда закрываюем эту ишу и вертим рамду как нам удобно? :)

kinda-neat commented 4 years ago

Да!