diff --git a/README.md b/README.md index d474e34..6f0eab4 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ server.register( { register: require('hapi-webpack-dev-middleware'), options: { + indexMask: new RegExp('^/(request|services|register|login).*', 'g'), config: require('./webpack.config.js'), options: { noInfo: true, @@ -38,6 +39,7 @@ server.register( Configuration options: +- ```indexMask```: Optional regexp. Replace matched pages to index.html, usefull for HTML5 history api. - ```config```: The Webpack config to use. - ```options```: The options you'd normally pass to ```webpack-dev-middleware```. Refer to their [documentation](https://github.com/webpack/webpack-dev-middleware) for all possible values. diff --git a/index.js b/index.js index 63e1f1f..f86b85e 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ const Webpack = require('webpack'); const WebpackDevMiddleware = require('webpack-dev-middleware'); - +const url = require('url') exports.register = (server, options, next) => { @@ -15,8 +15,13 @@ exports.register = (server, options, next) => { const req = request.raw.req; const res = request.raw.res; + const nreq = options.indexMask && options.indexMask.test(req.url) + ? Object.assign(Object.create(req), { + url: url.resolve(config.output.publicPath || '', 'index.html') + }) + : req; - middleware(req, res, (err) => { + middleware(nreq, res, (err) => { if (err) { return reply(err); diff --git a/package.json b/package.json index 90710a2..9411ea5 100644 --- a/package.json +++ b/package.json @@ -17,15 +17,15 @@ "node": ">=4.0.0" }, "devDependencies": { - "eslint": "2.9.0", - "eslint-config-hapi": "9.1.0", + "eslint": "3.17.1", + "eslint-config-hapi": "10.0.0", "eslint-plugin-hapi": "4.0.0", - "hapi": "15.2.0", + "hapi": "16.1.0", "code": "4.0.0", - "lab": "11.2.0" + "lab": "13.0.1" }, "dependencies": { - "webpack": "2.1.0-beta.25", - "webpack-dev-middleware": "1.8.4" + "webpack": "2.2.1", + "webpack-dev-middleware": "1.10.1" } } \ No newline at end of file