Я розмістив це в іншому місці, але, чесно кажучи, тут було б краще місце.
Припустимо, що ви встановите React 15.0.1 з npm, import react from 'react'
або react = require('react')
буде запущено, ./mode_modules/react/lib/React.js
що є вихідним джерелом React.
Документи React пропонують використовувати ./mode_modules/react/dist/react.js
для розробки та react.min.js
для виробництва.
Якщо ви мінімізуєте /lib/React.js
або /dist/react.js
для виробництва, React виведе попереджувальне повідомлення про те, що ви мінімізували невиробничий код:
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 поводяться аналогічно. Redux виводить попереджувальне повідомлення. Я вважаю, що реагує і дом.
Тож вам явно рекомендується використовувати виробничу версію від /dist
.
Однак якщо ви мінімізуєте /dist
версії, UglifyJsPlugin webpack скаржиться.
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
Ви не можете уникнути цього повідомлення, оскільки UglifyJsPlugin може виключати лише фрагменти веб-пакету, а не окремі файли.
Я сам використовую і розробку, і /dist
версію виробництва .
- Вебпак має менше роботи і закінчується трохи раніше. (YRMV)
- Документи React кажуть
/dist/react.min.js
, що оптимізовано для виробництва. Я не читав жодних доказів того, що 'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') }
плюс uglify виконує так само хорошу роботу, як і "/ dist / react.min.js". Я не читав жодних доказів, що ви отримуєте той самий отриманий код.
- Я отримую 1 попереджувальне повідомлення від uglify, а не 3 від екосистеми react / redux.
Можна використовувати веб-пакет, використовуючи /dist
версії з:
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
для користувачів WebPack: stackoverflow.com/questions/37311972 / ...