Opublikowałem to gdzie indziej, ale szczerze mówiąc, tutaj byłoby lepsze miejsce.
Zakładając, że zainstalujesz React 15.0.1 z npm, import react from 'react'lub react = require('react')uruchomisz, ./mode_modules/react/lib/React.jsktóry jest surowym źródłem Reacta .
Dokumentacja React sugeruje użycie ./mode_modules/react/dist/react.jsdo rozwoju i react.min.jsprodukcji.
Powinieneś zminimalizować /lib/React.js lub /dist/react.jsuruchomisz produkcyjną, React wyświetli ostrzeżenie, że zminimalizowałeś kod nieprodukcyjny:
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, reag-redux zachowują się podobnie. Redux wyświetla komunikat ostrzegawczy. Uważam, że reakcja też.
Dlatego wyraźnie zachęcamy do korzystania z wersji produkcyjnej z /dist.
Jeśli jednak zminimalizujesz plik /dist zminimalizujesz wersje, UglifyJsPlugin z webpacka będzie narzekać.
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
Nie możesz uniknąć tego komunikatu, ponieważ UglifyJsPlugin może wykluczać tylko fragmenty pakietu webpack, a nie pojedyncze pliki.
Sam korzystam z wersji rozwojowej i produkcyjnej /dist.
- Webpack ma mniej pracy i kończy się nieco wcześniej. (YRMV)
- Dokumentacja React twierdzi, że
/dist/react.min.jsjest zoptymalizowana pod kątem produkcji. Nie przeczytałem żadnego dowodu na to'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') } plus uglify działa tak dobrze jak "/ dist / reaguj.min.js". Nie przeczytałem żadnego dowodu, że otrzymujesz ten sam wynikowy kod.
- Dostaję 1 wiadomość ostrzegawczą od uglify zamiast 3 z ekosystemu reaguj / redux.
Możesz użyć webpacka do korzystania z /distwersji z:
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.envdla użytkowników