L'ho postato altrove ma, francamente, qui sarebbe un posto migliore.
Supponendo che tu installi React 15.0.1 con npm, import react from 'react'
o react = require('react')
verrà eseguito ./mode_modules/react/lib/React.js
che è la fonte grezza di React.
I documenti di React suggeriscono di utilizzare ./mode_modules/react/dist/react.js
per lo sviluppo e react.min.js
per la produzione.
Se dovessi minimizzare /lib/React.js
o /dist/react.js
per la produzione, React mostrerà un messaggio di avviso che hai minimizzato il codice di non produzione:
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 si comportano in modo simile. Redux visualizza un messaggio di avviso. Credo che anche React-dom lo faccia.
Quindi sei chiaramente incoraggiato a utilizzare la versione di produzione da /dist
.
Tuttavia, se riduci le /dist
versioni, UglifyJsPlugin di webpack si lamenterà.
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
Non puoi evitare questo messaggio perché UglifyJsPlugin può escludere solo blocchi webpack, non singoli file.
Uso personalmente sia la versione di sviluppo che quella di produzione /dist
.
- Webpack ha meno lavoro da fare e finisce un po 'prima. (YRMV)
- I documenti di React dicono che
/dist/react.min.js
è ottimizzato per la produzione. Non ho letto alcuna prova che 'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') }
plus uglify faccia un buon lavoro come '/ dist / react.min.js`. Non ho letto alcuna prova che ottieni lo stesso codice risultante.
- Ricevo 1 messaggio di avviso da uglify invece di 3 dall'ecosistema react / redux.
Puoi fare in modo che webpack utilizzi le /dist
versioni 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
per gli utenti WebPack: stackoverflow.com/questions/37311972/...