Tôi đã đăng bài này ở nơi khác, nhưng thành thật mà nói, đây sẽ là một nơi tốt hơn.
Giả sử bạn cài đặt React 15.0.1 với npm import react from 'react'
hoặc react = require('react')
sẽ chạy ./mode_modules/react/lib/React.js
đó là nguồn thô của React.
Tài liệu React đề xuất bạn sử dụng ./mode_modules/react/dist/react.js
để phát triển và react.min.js
sản xuất.
Nếu bạn giảm thiểu /lib/React.js
hoặc /dist/react.js
cho sản xuất, React sẽ hiển thị một thông báo cảnh báo rằng bạn đã giảm thiểu mã phi sản xuất:
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 hoạt động tương tự. Redux hiển thị thông báo cảnh báo. Tôi tin rằng react-dom cũng vậy.
Vì vậy, bạn rõ ràng được khuyến khích sử dụng phiên bản sản xuất từ /dist
.
Tuy nhiên, nếu bạn rút gọn các /dist
phiên bản, UglifyJsPlugin của webpack sẽ phàn nàn.
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
Bạn không thể tránh thông báo này vì UglifyJsPlugin chỉ có thể loại trừ các khối webpack chứ không phải các tệp riêng lẻ.
Tôi tự mình sử dụng cả /dist
phiên bản phát triển và sản xuất .
- Webpack có ít việc phải làm hơn và kết thúc sớm hơn một chút. (YRMV)
- Tài liệu React nói
/dist/react.min.js
là được tối ưu hóa cho quá trình sản xuất. Tôi không đọc được bằng chứng nào cho thấy 'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') }
cộng với uglify làm tốt công việc như '/ dist / react.min.js`. Tôi không đọc bằng chứng nào mà bạn nhận được cùng một mã kết quả.
- Tôi nhận được 1 thông báo cảnh báo từ uglify thay vì 3 từ hệ sinh thái react / redux.
Bạn có thể yêu cầu webpack sử dụng các /dist
phiên bản với:
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
dành cho người dùng webpack: stackoverflow.com/questions/37311972/…