Browserify объединяет в моей комплектации browserify как производственную, так и разрабатываемую версии реакции и реагирования, что делает его намного больше, чем должно быть. Простой воспроизводимый пример:
main.js:
var React = require('react');
var ReactDOM = require('react-dom');
ReactDOM.render(
React.createElement('h1', null, 'Hello Planet'),
document.getElementById('root')
);
// To simplify the workflow, this example does not use JSX or ES2015.
index.html:
<!DOCTYPE html>
<html>
<head>
<title>Page</title>
<meta charset="utf-8">
</head>
<body>
<div id="root"></div>
<script src="_build/main.js"></script>
</body>
</html>
Чтобы построить main.js
, я запустил эту команду:
NODE_ENV=production browserify --full-paths main.js -o _build/main.js
Полученный размер пакета составляет 786 КБ. Анализ пакета с использованием диска показывает, что в пакет включены как react-dom.development.js
(610,9 КБ), так и react-dom.production.min.js
(92,5 КБ). То же самое касается react.development.js
(48,4 кб) и react.production.min.js
(5,4 кб), оба из которых включены в комплект.
Таким образом, вопрос заключается в следующем: поскольку разрабатываемые версии реагировать и реагировать не являются необходимыми компонентами пакета, как версии разработки не могут быть включены в первую очередь? Как можно дать команду browserify объединять только рабочие версии реагировать и реагировать?