Initial boiler plate project
This commit is contained in:
51
node_modules/next/dist/esm/build/webpack/plugins/app-build-manifest-plugin.js
generated
vendored
Normal file
51
node_modules/next/dist/esm/build/webpack/plugins/app-build-manifest-plugin.js
generated
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
import { webpack, sources } from "next/dist/compiled/webpack/webpack";
|
||||
import { APP_BUILD_MANIFEST, CLIENT_STATIC_FILES_RUNTIME_MAIN_APP, SYSTEM_ENTRYPOINTS } from "../../../shared/lib/constants";
|
||||
import { getEntrypointFiles } from "./build-manifest-plugin";
|
||||
import getAppRouteFromEntrypoint from "../../../server/get-app-route-from-entrypoint";
|
||||
const PLUGIN_NAME = "AppBuildManifestPlugin";
|
||||
export class AppBuildManifestPlugin {
|
||||
constructor(options){
|
||||
this.dev = options.dev;
|
||||
}
|
||||
apply(compiler) {
|
||||
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory })=>{
|
||||
compilation.dependencyFactories.set(webpack.dependencies.ModuleDependency, normalModuleFactory);
|
||||
compilation.dependencyTemplates.set(webpack.dependencies.ModuleDependency, new webpack.dependencies.NullDependency.Template());
|
||||
});
|
||||
compiler.hooks.make.tap(PLUGIN_NAME, (compilation)=>{
|
||||
compilation.hooks.processAssets.tap({
|
||||
name: PLUGIN_NAME,
|
||||
stage: webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS
|
||||
}, (assets)=>this.createAsset(assets, compilation));
|
||||
});
|
||||
}
|
||||
createAsset(assets, compilation) {
|
||||
const manifest = {
|
||||
pages: {}
|
||||
};
|
||||
const mainFiles = new Set(getEntrypointFiles(compilation.entrypoints.get(CLIENT_STATIC_FILES_RUNTIME_MAIN_APP)));
|
||||
for (const entrypoint of compilation.entrypoints.values()){
|
||||
if (!entrypoint.name) {
|
||||
continue;
|
||||
}
|
||||
if (SYSTEM_ENTRYPOINTS.has(entrypoint.name)) {
|
||||
continue;
|
||||
}
|
||||
const pagePath = getAppRouteFromEntrypoint(entrypoint.name);
|
||||
if (!pagePath) {
|
||||
continue;
|
||||
}
|
||||
const filesForPage = getEntrypointFiles(entrypoint);
|
||||
manifest.pages[pagePath] = [
|
||||
...new Set([
|
||||
...mainFiles,
|
||||
...filesForPage
|
||||
])
|
||||
];
|
||||
}
|
||||
const json = JSON.stringify(manifest, null, 2);
|
||||
assets[APP_BUILD_MANIFEST] = new sources.RawSource(json);
|
||||
}
|
||||
}
|
||||
|
||||
//# sourceMappingURL=app-build-manifest-plugin.js.map
|
||||
Reference in New Issue
Block a user