Eu postei isso em outro lugar, mas, francamente, aqui seria um lugar melhor.
Supondo que você instale o React 15.0.1 com npm import react from 'react'ou react = require('react')execute, ./mode_modules/react/lib/React.jsque é a fonte bruta do React.
Os documentos do React sugerem que você use ./mode_modules/react/dist/react.jspara desenvolvimento e react.min.jsprodução.
Se você reduzir /lib/React.jsou /dist/react.jsproduzir, o React exibirá uma mensagem de aviso de que você reduziu o código de não produção:
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 se comportam de maneira semelhante. Redux exibe uma mensagem de aviso. Eu acredito que a reação também.
Portanto, você é claramente incentivado a usar a versão de produção de /dist.
No entanto, se você reduzir as /distversões, o UglifyJsPlugin do webpack irá reclamar.
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
Você não pode evitar esta mensagem porque o UglifyJsPlugin pode excluir apenas blocos da Webpack, não arquivos individuais.
Eu mesmo uso as versões de desenvolvimento e produção /dist.
- O Webpack tem menos trabalho a fazer e termina um pouco antes. (YRMV)
- Os documentos do React dizem que
/dist/react.min.jsestão otimizados para produção. Não li nenhuma prova de que o 'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') }plus uglify faça um trabalho tão bom quanto '/ dist / react.min.js`. Não li nenhuma prova de que você obtenha o mesmo código resultante.
- Recebo 1 mensagem de aviso do uglify em vez de 3 do ecossistema react / redux.
Você pode fazer com que o webpack use as /distversões com:
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.envusuários do webpack: stackoverflow.com/questions/37311972/…