feat(blog): add file-based blog with dynamic slugs, MDX content and layout shell
- Introduced blog routing using Next.js App Router - Implemented dynamic [slug] pages for blog posts - Added MDX-based content loading via lib/posts - Integrated shared TopBar layout with navigation - Established clear content, lib and component separation
This commit is contained in:
45
apps/public-web/node_modules/next/dist/esm/server/require-hook.js
generated
vendored
Normal file
45
apps/public-web/node_modules/next/dist/esm/server/require-hook.js
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
// Synchronously inject a require hook for webpack and webpack/. It's required to use the internal ncc webpack version.
|
||||
// This is needed for userland plugins to attach to the same webpack instance as Next.js'.
|
||||
// Individually compiled modules are as defined for the compilation in bundles/webpack/packages/*.
|
||||
// This module will only be loaded once per process.
|
||||
const path = require('path');
|
||||
const mod = require('module');
|
||||
const originalRequire = mod.prototype.require;
|
||||
const resolveFilename = // @ts-expect-error
|
||||
mod._resolveFilename;
|
||||
let resolve = process.env.NEXT_MINIMAL ? __non_webpack_require__.resolve : require.resolve;
|
||||
export const hookPropertyMap = new Map();
|
||||
export const defaultOverrides = {
|
||||
'styled-jsx': path.dirname(resolve('styled-jsx/package.json')),
|
||||
'styled-jsx/style': resolve('styled-jsx/style'),
|
||||
'styled-jsx/style.js': resolve('styled-jsx/style')
|
||||
};
|
||||
const toResolveMap = (map)=>Object.entries(map).map(([key, value])=>[
|
||||
key,
|
||||
resolve(value)
|
||||
]);
|
||||
export function addHookAliases(aliases = []) {
|
||||
for (const [key, value] of aliases){
|
||||
hookPropertyMap.set(key, value);
|
||||
}
|
||||
}
|
||||
addHookAliases(toResolveMap(defaultOverrides));
|
||||
// @ts-expect-error
|
||||
mod._resolveFilename = (function(originalResolveFilename, requestMap, request, parent, isMain, options) {
|
||||
const hookResolved = requestMap.get(request);
|
||||
if (hookResolved) request = hookResolved;
|
||||
return originalResolveFilename.call(mod, request, parent, isMain, options);
|
||||
// We use `bind` here to avoid referencing outside variables to create potential memory leaks.
|
||||
}).bind(null, resolveFilename, hookPropertyMap);
|
||||
// @ts-expect-error
|
||||
// This is a hack to make sure that if a user requires a Next.js module that wasn't bundled
|
||||
// that needs to point to the rendering runtime version, it will point to the correct one.
|
||||
// This can happen on `pages` when a user requires a dependency that uses next/image for example.
|
||||
mod.prototype.require = function(request) {
|
||||
if (request.endsWith('.shared-runtime')) {
|
||||
return originalRequire.call(this, `next/dist/server/route-modules/pages/vendored/contexts/${path.basename(request, '.shared-runtime')}`);
|
||||
}
|
||||
return originalRequire.call(this, request);
|
||||
};
|
||||
|
||||
//# sourceMappingURL=require-hook.js.map
|
||||
Reference in New Issue
Block a user