Skip to content

Commit

Permalink
fix to not call hot.accept on sub-components (#294) (#351)
Browse files Browse the repository at this point in the history
  • Loading branch information
nkzawa authored and rauchg committed Dec 6, 2016
1 parent 9990a5f commit edfdc48
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 17 deletions.
27 changes: 16 additions & 11 deletions server/build/loaders/hot-self-accept-loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,28 @@ module.exports = function (content, sourceMap) {
const route = getRoute(this)

this.callback(null, `${content}
if (module.hot) {
(function (Component, route) {
if (!module.hot) return
if (!__resourceQuery) return
var qs = require('querystring')
var params = qs.parse(__resourceQuery.slice(1))
if (params.entry == null) return
module.hot.accept()
Component.__route = route
var Component = module.exports.default || module.exports
Component.__route = ${JSON.stringify(route)}
if (module.hot.status() === 'idle') return
if (module.hot.status() !== 'idle') {
var components = next.router.components
for (var r in components) {
if (!components.hasOwnProperty(r)) continue
var components = next.router.components
for (var r in components) {
if (!components.hasOwnProperty(r)) continue
if (components[r].Component.__route === ${JSON.stringify(route)}) {
next.router.update(r, Component)
}
if (components[r].Component.__route === route) {
next.router.update(r, Component)
}
}
}
})(module.exports.default || module.exports, ${JSON.stringify(route)})
`, sourceMap)
}

Expand Down
12 changes: 6 additions & 6 deletions server/build/webpack.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ export default async function createCompiler (dir, { hotReload = false, dev = fa
const entry = {}
const defaultEntries = hotReload ? ['next/dist/client/webpack-hot-middleware-client'] : []
for (const p of pages) {
entry[join('bundles', p)] = defaultEntries.concat(['./' + p])
entry[join('bundles', p)] = defaultEntries.concat([`./${p}?entry`])
}

const nextPagesDir = join(__dirname, '..', '..', 'pages')

const errorEntry = join('bundles', 'pages', '_error.js')
const defaultErrorPath = join(nextPagesDir, '_error.js')
if (!entry[errorEntry]) {
entry[errorEntry] = defaultEntries.concat([defaultErrorPath])
entry[errorEntry] = defaultEntries.concat([defaultErrorPath + '?entry'])
}

const errorDebugEntry = join('bundles', 'pages', '_error-debug.js')
Expand Down Expand Up @@ -78,22 +78,22 @@ export default async function createCompiler (dir, { hotReload = false, dev = fa
.replace(/[\\/]package\.json$/, '')

const loaders = (hotReload ? [{
test: /\.js$/,
test: /\.js(\?[^?]*)?$/,
loader: 'hot-self-accept-loader',
include: [
join(dir, 'pages'),
nextPagesDir
]
}, {
test: /\.js$/,
test: /\.js(\?[^?]*)?$/,
loader: 'react-hot-loader/webpack',
exclude: /node_modules/
}] : [])
.concat([{
test: /\.json$/,
loader: 'json-loader'
}, {
test: /\.(js|json)$/,
test: /\.(js|json)(\?[^?]*)?$/,
loader: 'emit-file-loader',
include: [dir, nextPagesDir],
exclude (str) {
Expand All @@ -119,7 +119,7 @@ export default async function createCompiler (dir, { hotReload = false, dev = fa
]
}
}, {
test: /\.js$/,
test: /\.js(\?[^?]*)?$/,
loader: 'babel',
include: [dir, nextPagesDir],
exclude (str) {
Expand Down

0 comments on commit edfdc48

Please sign in to comment.