Я разместил это в другом месте, но, честно говоря, здесь было бы лучше.
Предполагая, что вы устанавливаете React 15.0.1 с помощью npm import react from 'react'
или react = require('react')
запускаете./mode_modules/react/lib/React.js
исходный код React.
В документации React предлагается использовать ./mode_modules/react/dist/react.js
для разработки иreact.min.js
для производства.
Если вы минимизировали /lib/React.js
или /dist/react.js
производите, React отобразит предупреждающее сообщение о том, что вы минимизировали непроизводственный код:
Warning: It looks like you're using a minified copy of the development build of React. When deploying React apps to production, make sure to use the production build which skips development warnings and is faster. See fb.me/react-minification for more details.
react-dom, redux, react-redux ведут себя аналогично. Redux отображает предупреждающее сообщение. Я считаю, что react-dom тоже.
Поэтому вам явно рекомендуется использовать производственную версию от /dist
.
Однако, если вы /dist
уменьшите версии, UglifyJsPlugin веб-пакета будет жаловаться.
WARNING in ../~/react/dist/react.js
Critical dependencies:
4:478-485 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
@ ../~/react/dist/react.js 4:478-4851
Вы не можете избежать этого сообщения, потому что UglifyJsPlugin может исключать только фрагменты веб-пакета, а не отдельные файлы.
Я сам использую как рабочую, так и рабочую /dist
версию.
- У Webpack меньше работы, и он завершается немного раньше. (YRMV)
- В документации React говорится, что
/dist/react.min.js
он оптимизирован для производства. Я не читал никаких доказательств того, что 'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') }
плюс uglify работает так же хорошо, как / dist / react.min.js. Я не читал доказательств того, что вы получаете тот же результирующий код.
- Я получаю 1 предупреждающее сообщение от uglify, а не 3 от экосистемы react / redux.
Вы можете использовать webpack /dist
версии с:
resolve: {
alias: {
'react$': path.join(__dirname, 'node_modules', 'react','dist',
(IS_PRODUCTION ? 'react.min.js' : 'react.js')),
'react-dom$': path.join(__dirname, 'node_modules', 'react-dom','dist',
(IS_PRODUCTION ? 'react-dom.min.js' : 'react-dom.js')),
'redux$': path.join(__dirname, 'node_modules', 'redux','dist',
(IS_PRODUCTION ? 'redux.min.js' : 'redux.js')),
'react-redux$': path.join(__dirname, 'node_modules', 'react-redux','dist',
(IS_PRODUCTION ? 'react-redux.min.js' : 'react-redux.js'))
}
}
process.env
для пользователей webpack: stackoverflow.com/questions/37311972/…