mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
9ffd23eeef
* Remove unused argument * Replace pages-plugin with loader * Add loader-utils types * Remove logs * Bring back previous deposal behavior * Remove console.log * Remove webpack/utils as it’s no longer in use * Remove hot-self-accept-loader * Error Recovery tests * Make hotSelfAccept a noop default loader * Fix windows deleted/added * Remove logging * Remove unused variables * Remove log * Simplify entrypoint generation * Don’t return the function * Fix _app test * Remove code that’s always true * Move aliases to constants * Use alias * Join pages alias in reduce * Default pages differently * Loop over pages instead of manually defining * Move entry generation into common function * Update packages/next/build/webpack/loaders/next-client-pages-loader.ts Co-Authored-By: timneutkens <tim@timneutkens.nl> * Update packages/next/build/webpack/loaders/next-client-pages-loader.ts
30 lines
982 B
TypeScript
30 lines
982 B
TypeScript
import {loader} from 'webpack'
|
|
import loaderUtils from 'loader-utils'
|
|
|
|
export type ClientPagesLoaderOptions = {
|
|
absolutePagePath: string,
|
|
page: string
|
|
}
|
|
|
|
const nextClientPagesLoader: loader.Loader = function () {
|
|
const {absolutePagePath, page}: any = loaderUtils.getOptions(this)
|
|
const stringifiedAbsolutePagePath = JSON.stringify(absolutePagePath)
|
|
const stringifiedPage = JSON.stringify(page)
|
|
|
|
return `
|
|
(window.__NEXT_P=window.__NEXT_P||[]).push([${stringifiedPage}, function() {
|
|
var page = require(${stringifiedAbsolutePagePath})
|
|
if(module.hot) {
|
|
module.hot.accept(${stringifiedAbsolutePagePath}, function() {
|
|
if(!next.router.components[${stringifiedPage}]) return
|
|
var updatedPage = require(${stringifiedAbsolutePagePath})
|
|
next.router.update(${stringifiedPage}, updatedPage.default || updatedPage)
|
|
})
|
|
}
|
|
return { page: page.default || page }
|
|
}]);
|
|
`
|
|
}
|
|
|
|
export default nextClientPagesLoader
|