J'ai posté ceci ailleurs mais, franchement, ici serait un meilleur endroit.
En supposant que vous installez React 15.0.1 avec npm, import react from 'react'
ou react = require('react')
que vous exécuterez ./mode_modules/react/lib/React.js
la source brute de React.
La documentation React vous suggère d'utiliser ./mode_modules/react/dist/react.js
pour le développement et react.min.js
pour la production.
Si vous minimisez /lib/React.js
ou /dist/react.js
pour la production, React affichera un message d'avertissement indiquant que vous avez minifié le code de non-production:
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 comportent de la même manière. Redux affiche un message d'avertissement. Je pense que react-dom aussi.
Vous êtes donc clairement encouragé à utiliser la version de production de /dist
.
Cependant, si vous réduisez les /dist
versions, UglifyJsPlugin de webpack se plaindra.
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
Vous ne pouvez pas éviter ce message car UglifyJsPlugin ne peut exclure que des blocs Webpack, pas des fichiers individuels.
J'utilise /dist
moi-même les versions de développement et de production .
- Webpack a moins de travail à faire et se termine un peu plus tôt. (YRMV)
- Les documents React disent qu'il
/dist/react.min.js
est optimisé pour la production. Je n'ai lu aucune preuve que 'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') }
plus uglify fait un aussi bon travail que «/ dist / react.min.js». Je n'ai lu aucune preuve que vous obtenez le même code résultant.
- Je reçois 1 message d'avertissement de uglify au lieu de 3 de l'écosystème react / redux.
Vous pouvez faire en sorte que webpack utilise les /dist
versions avec:
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
pour les utilisateurs de Webpack: stackoverflow.com/questions/37311972/…