Publiqué esto en otro lugar pero, francamente, este sería un lugar mejor.
Suponiendo que instale React 15.0.1 con npm, import react from 'react'
o react = require('react')
se ejecutará, ./mode_modules/react/lib/React.js
que es la fuente sin procesar de React.
Los documentos de React sugieren que se utilice ./mode_modules/react/dist/react.js
para desarrollo y react.min.js
producción.
Si minimiza /lib/React.js
o /dist/react.js
para producción, React mostrará un mensaje de advertencia de que ha minimizado el código que no es de producción:
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 comportan de manera similar. Redux muestra un mensaje de advertencia. Creo que react-dom también lo hace.
Por tanto, se le anima claramente a utilizar la versión de producción de /dist
.
Sin embargo, si minimiza las /dist
versiones, UglifyJsPlugin de webpack se quejará.
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
No puede evitar este mensaje porque UglifyJsPlugin solo puede excluir fragmentos de paquetes web, no archivos individuales.
Yo mismo utilizo las versiones de desarrollo y producción /dist
.
- Webpack tiene menos trabajo que hacer y termina un poco antes. (YRMV)
- Los documentos de React dicen que
/dist/react.min.js
está optimizado para la producción. No he leído ninguna prueba de que 'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') }
plus uglify funcione tan bien como '/ dist / react.min.js`. No he leído ninguna prueba de que obtenga el mismo código resultante.
- Recibo 1 mensaje de advertencia de uglify en lugar de 3 del ecosistema react / redux.
Puede hacer que webpack use las /dist
versiones con:
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
para usuarios de paquetes web: stackoverflow.com/questions/37311972/…