Skip to content

Commit 9df5589

Browse files
fix: page.title() is called before the page is closed
1 parent 2877d1a commit 9df5589

File tree

7 files changed

+132
-503
lines changed

7 files changed

+132
-503
lines changed

packages/vuepress-plugin-export-pdf-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
"cac": "^6.7.14",
5656
"envinfo": "^7.8.1",
5757
"fs-extra": "^11.1.1",
58-
"html-export-pdf-cli": "^1.1.0",
58+
"html-export-pdf-cli": "^1.1.1",
5959
"multimatch": "^6.0.0",
6060
"ora": "^6.3.0",
6161
"pdfjs": "^2.4.7",

packages/vuepress-plugin-export-pdf-core/src/generatePdf.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,14 @@ export const generatePdf = async ({
110110
}
111111

112112
await printer.render(location);
113+
const headTitle = title || await page.title();
113114
const data = await printer.pdf(location, {
114115
format: "A4",
115116
...pdfOptions,
116117
});
117118
await writeFileSafe(pagePath, data);
118119

119-
const headTitle = title || await page.title();
120+
await printer.closePage(location);
120121
singleBar.increment(1, { headTitle });
121122
}
122123

packages/vuepress-plugin-export-pdf-v1/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"debug": "^4.3.4"
6262
},
6363
"devDependencies": {
64-
"@condorhero/vuepress-types": "^2.0.0",
64+
"@condorhero/vuepress-types": "^2.0.1",
6565
"@types/debug": "^4.1.7",
6666
"vuepress": "^1.9.9"
6767
},

packages/vuepress-plugin-export-pdf-v1/src/serverApp.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,15 @@ export const serverApp = async (dir = "docs", commandOptions: ICommandOptions =
5959
outlineContainerSelector,
6060
} = userConfig;
6161

62+
// https://github.com/vuejs/vuepress/blob/daa6404bf7b46331d0751af58a2c8a6c5c7cc3f9/packages/%40vuepress/core/lib/node/App.js#L468
6263
const devContext = await dev({
6364
sourceDir,
6465
clearScreen: false,
6566
theme,
6667
});
6768

6869
await new Promise((resolve) => {
70+
// https://github.com/vuejs/vuepress/blob/38e98634af117f83b6a32c8ff42488d91b66f663/packages/%40vuepress/core/lib/node/dev/index.js#L242
6971
devContext.devProcess.server.compiler.hooks.done.tap("webpack-dev-server", () => {
7072
process.stdout.write("VuePress dev server compiler done\n");
7173
resolve(true);
@@ -102,6 +104,5 @@ export const serverApp = async (dir = "docs", commandOptions: ICommandOptions =
102104
}
103105

104106
// close current dev server
105-
devContext.devProcess.server.close();
106-
process.exit(0);
107+
devContext.devProcess.server.close(() => process.exit(0));
107108
};

packages/vuepress-plugin-export-pdf-v2/src/serverApp.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { join } from "node:path";
2+
import { createRequire } from "node:module";
23
import { createDevApp, defaultTheme, viteBundler } from "vuepress";
34
import debug from "debug";
45
import type { CommandOptions } from "@condorhero/vuepress-plugin-export-pdf-core";
@@ -9,7 +10,11 @@ import type { UserConfig } from ".";
910

1011
const devDebug = debug("vuepress-plugin-export-pdf-v2:dev-server");
1112

13+
export const moduleRequire = createRequire(import.meta.url);
14+
const { version } = moduleRequire("vuepress/package.json");
15+
1216
export const serverApp = async (dir = "docs", commandOptions: CommandOptions = {}) => {
17+
checkEnv("VuePress", pkg.engines.node, version, pkg.peerDependencies.vuepress);
1318
const sourceDir = join(process.cwd(), dir);
1419

1520
if (commandOptions.debug)
@@ -60,7 +65,6 @@ export const serverApp = async (dir = "docs", commandOptions: CommandOptions = {
6065
host: "localhost",
6166
port: 8714,
6267
});
63-
checkEnv("VuePress", pkg.engines.node, devApp.version, pkg.peerDependencies.vuepress);
6468

6569
// initialize and prepare
6670
await devApp.init();
@@ -94,6 +98,6 @@ export const serverApp = async (dir = "docs", commandOptions: CommandOptions = {
9498
}
9599

96100
// close current dev server
97-
closeDevServer();
101+
await closeDevServer();
98102
process.exit(0);
99103
};

packages/vuepress-types/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@condorhero/vuepress-types",
3-
"version": "2.0.1",
3+
"private": "true",
44
"description": "VuePress TypeScript helpers for 1.x",
55
"author": "CondorHero",
66
"license": "MIT",

0 commit comments

Comments
 (0)