ฉันโพสต์สิ่งนี้ที่อื่น แต่ตรงไปตรงมาที่นี่จะเป็นสถานที่ที่ดีกว่า
สมมติว่าคุณติดตั้ง 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 แสดงข้อความเตือน ฉันเชื่อว่า react-dom ก็ทำเช่นกัน
ดังนั้นคุณจึงควรใช้เวอร์ชันที่ใช้งานจริงจาก /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 สามารถยกเว้นส่วนของ webpack เท่านั้นไม่ใช่แต่ละไฟล์
ฉันใช้ทั้ง/dist
เวอร์ชันพัฒนาและเวอร์ชันที่ใช้งานจริงด้วยตัวเอง
- Webpack มีงานที่ต้องทำน้อยกว่าและเสร็จเร็วกว่าเล็กน้อย (YRMV)
- เอกสารตอบกลับบอกว่า
/dist/react.min.js
เหมาะสำหรับการผลิต ฉันไม่ได้อ่านข้อพิสูจน์ว่า'process.env': { NODE_ENV: JSON.stringify(IS_PRODUCTION ? 'production' : 'development') }
บวก uglify ทำได้ดีเท่ากับ '/ dist / react.min.js` ฉันไม่ได้อ่านหลักฐานว่าคุณได้รับรหัสผลลัพธ์เดียวกัน
- ฉันได้รับ 1 ข้อความเตือนจาก uglify แทนที่จะเป็น 3 ข้อความจากระบบนิเวศ react / redux
คุณสามารถให้ webpack ใช้/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
สำหรับผู้ใช้