接下來 3 篇文章的目標是以 React + Redux + Webpack 的技術來完成 To-Do List 功能與 PWA,而內容會假設讀者已經熟悉 React, Redux 及 Webpack,會把重點放在如何實作,不會逐步講解基礎觀念。
已完成範例如下:
https://github.com/AnnaSu/todolist-pwa-demo-react
而此篇文章為『環境建置』,內容如下:
說明此範例的環境介紹(Intro)之外,也說明安裝方式(Install)以及如何執行(Run)如下:
透過 json-server 來新增 DEMO 用的 API,模擬實際專案會使用 REST API 的情境。例如:
安裝 webpack-dev-server 來快速建置 server 環境,將網站跑起來。
藉由 concurrently,能夠同時跑多個 commands,例如:concurrently --kill-others 'webpack-dev-server --port 8000' 'json-server --watch db.json'
git clone https://github.com/AnnaSu/todolist-pwa-demo-react.git
cd todolist-pwa-demo-react
npm install
npm start
可參考 package.json 內的 "start": "concurrently --kill-others 'webpack-dev-server --port 8000' 'json-server --watch db.json'"
為了建立 React 專案,首先安裝對應 module:
npm install --save-dev react react-dom react-redux react-router redux redux-thunk
將 React 相關的 module 安裝完畢之後,由於 React 通常會使用 jsx
,所以我們還需要安裝 babel-preset-react
,如果我們程式碼會用到 ES7,那麼可以再安裝 babel-preset-stage-0
npm install --save-dev babel-preset-react babel-preset-stage-0
接下來再安裝 webpack 的相關 module
npm install --save-dev file-loader url-loader webpack-dev-server
完整 webpack.config.js 檔案如下:
var path = require('path');
module.exports = {
context: __dirname,
devtool: '#eval-source-map',
entry: {
main: path.resolve(__dirname, './src/boot.js'),
},
output: {
path: path.resolve(__dirname, './assets'),
filename: 'bundle.js',
publicPath: '/assets/'
},
module: {
loaders: [{
test: /\.js(x)?$/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react']
},
exclude: /node_modules/
}]
}
}
此篇文章針對『環境建置』做詳細的介紹,從安裝 module 開始,一步步說明如何建立 React + Redux + Webpack 的環境,而下一篇將會介紹『完成 To-Do List 專案架構與功能』。
本人小小筆記,如有錯誤或需要改進的部分,歡迎給予回饋。
我將會用最快的速度修正,m(_ _)m。謝謝