此專案建立一個Nodejs+Vue,搭配Nodemon、webpack Middleware模組達成前後端皆能即時熱更新的前後端開發環境增加開發的效率。
使用Express generator建立Express專案
$ npm install express-generator -g
$ express express-vue-proj
-
在根目錄建立server資料夾
-
將express-vue-proj/src中的檔案搬移到server資料夾
-
修改index.js 佈署 webpackDevMiddleware及webpackHotMiddleware ,並加上是否為開發環境的判斷式
const webpack = require('webpack'); const webpackDevMiddleware = require('webpack-dev-middleware'); const webpackHotMiddleware = require('webpack-hot-middleware'); const config= require('../webpack.config'); if(process.env.NODE_ENV !== "production"){ console.log('webpackHotMiddleware') const compiler = webpack(config) app.use(webpackDevMiddleware(compiler, { publicPath: config.output.publicPath, stats: { colors: true }, })) app.use(webpackHotMiddleware(compiler)) }
使用Vue CLI建立vue專案
$ vue init webpack express-vue-proj-client
-
在根目錄建立client資料夾
-
將express-vue-proj-client/src中的檔案搬移到client資料夾
-
在index.js加上hotClient.subscribe前端才會自動刷新
if(module.hot) { var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
hotClient.subscribe(function (event) { if (event.action === 'reload') { window.location.reload() } })
}
Install
npm intsall
dev
npm run start
[demo-path] http://localhost:3000
build production
npm run build
[demo-path] http://localhost:3000/vue (jade views)