Я написал служебную библиотеку и хочу tree-shaking
их, когда мой пользователь publishes
их приложение.
В Webpack v4 вам нужно сделать так, чтобы ваш модуль ES6
поддерживал tree-shaking
, но я также хочу разделить мои development build
и production build
на разные файлы.
То, что я хочу, точно так же, как модуль NPM реакции:
// index.js
'use strict';
if (process.env.NODE_ENV === 'production') {
module.exports = require('./cjs/react.production.min.js');
} else {
module.exports = require('./cjs/react.development.js');
}
Это вызывает у меня вопросы.
Если я сделаю все свои служебные модули commonjs
, я никогда не получу tree-shaking
, мое приложение станет таким огромным.
Если я сделаю все свои служебные модули ES6 static export
, мне нужно будет включить development message
в production code
.
И публикация двух модулей (например: my-utility
и my-utility-es
) не поможет, потому что в процессе разработки мой код выглядит так:
import { someFunc } from 'my-utility';
но в рабочем коде мне придется изменить его на:
import { someFunc } from 'my-utility-es';
Как я могу решить эту проблему?
Обновление
Чтобы быть более понятным, мои development build
и production build
содержат различный исходный код (например: производственная сборка удалила все сообщения об ошибках) .
Так что укажите, что режим webpack мне не подходит.