Merge pull request #2244 from dolanmiu/feature/build-fixes

Fix `vite` build issues
This commit is contained in:
Dolan
2023-07-19 01:19:15 +01:00
committed by GitHub
6 changed files with 36 additions and 27 deletions

View File

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../build/index.umd.cjs"></script> <script src="../build/index.umd.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.js"></script>
</head> </head>

View File

@ -5,9 +5,9 @@ import inquirer from "inquirer";
import { $ } from "execa"; import { $ } from "execa";
export type Answers = { export type Answers = {
type: "list" | "number"; readonly type: "list" | "number";
demoNumber?: number; readonly demoNumber?: number;
demoFile?: number; readonly demoFile?: number;
}; };
const dir = "./demo"; const dir = "./demo";
@ -15,8 +15,7 @@ const fileNames = fs.readdirSync(dir);
const keys = fileNames.map((f) => path.parse(f).name); const keys = fileNames.map((f) => path.parse(f).name);
const getFileNumber = (file: string): number => { const getFileNumber = (file: string): number => {
const nameParts = file.split("-"); const [firstPart] = file.split("-");
const firstPart = nameParts[0];
return Number(firstPart); return Number(firstPart);
}; };
@ -35,15 +34,15 @@ const answers = await inquirer.prompt<Answers>([
name: "demoFile", name: "demoFile",
message: "What demo do you wish to run?", message: "What demo do you wish to run?",
choices: demoFiles, choices: demoFiles,
filter: (input) => parseInt(input.split("-")[0]), filter: (input) => parseInt(input.split("-")[0], 10),
when: (answers) => answers.type === "list", when: (a) => a.type === "list",
}, },
{ {
type: "number", type: "number",
name: "demoNumber", name: "demoNumber",
message: "What demo do you wish to run? (Enter a number)", message: "What demo do you wish to run? (Enter a number)",
default: 1, default: 1,
when: (answers) => answers.type === "number", when: (a) => a.type === "number",
}, },
]); ]);
@ -56,6 +55,7 @@ if (files.length === 0) {
const filePath = path.join(dir, files[0]); const filePath = path.join(dir, files[0]);
console.log(`Running demo ${demoNumber}: ${files[0]}`); console.log(`Running demo ${demoNumber}: ${files[0]}`);
await $`ts-node --project demo/tsconfig.json ${filePath}`; const { stdout } = await $`ts-node --project demo/tsconfig.json ${filePath}`;
console.log(stdout);
console.log("Successfully created document!"); console.log("Successfully created document!");
} }

11
package-lock.json generated
View File

@ -10,7 +10,6 @@
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@types/node": "^20.3.1", "@types/node": "^20.3.1",
"fflate": "^0.8.0",
"jszip": "^3.10.1", "jszip": "^3.10.1",
"nanoid": "^4.0.2", "nanoid": "^4.0.2",
"xml": "^1.0.1", "xml": "^1.0.1",
@ -5975,11 +5974,6 @@
"reusify": "^1.0.4" "reusify": "^1.0.4"
} }
}, },
"node_modules/fflate": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.0.tgz",
"integrity": "sha512-FAdS4qMuFjsJj6XHbBaZeXOgaypXp8iw/Tpyuq/w3XA41jjLHT8NPA+n7czH/DDhdncq0nAyDZmPeWXh2qmdIg=="
},
"node_modules/figlet": { "node_modules/figlet": {
"version": "1.5.2", "version": "1.5.2",
"resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz",
@ -16784,11 +16778,6 @@
"reusify": "^1.0.4" "reusify": "^1.0.4"
} }
}, },
"fflate": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.0.tgz",
"integrity": "sha512-FAdS4qMuFjsJj6XHbBaZeXOgaypXp8iw/Tpyuq/w3XA41jjLHT8NPA+n7czH/DDhdncq0nAyDZmPeWXh2qmdIg=="
},
"figlet": { "figlet": {
"version": "1.5.2", "version": "1.5.2",
"resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz",

View File

@ -3,13 +3,13 @@
"version": "8.2.0", "version": "8.2.0",
"description": "Easily generate .docx files with JS/TS with a nice declarative API. Works for Node and on the Browser.", "description": "Easily generate .docx files with JS/TS with a nice declarative API. Works for Node and on the Browser.",
"type": "module", "type": "module",
"main": "build/index.umd.cjs", "main": "build/index.umd.js",
"module": "./build/index.js", "module": "./build/index.js",
"types": "./build/index.d.ts", "types": "./build/index.d.ts",
"exports": { "exports": {
".": { ".": {
"browser": { "browser": {
"default": "./build/index.umd.cjs" "default": "./build/index.umd.js"
}, },
"require": "./build/index.cjs", "require": "./build/index.cjs",
"types": "./build/index.d.ts", "types": "./build/index.d.ts",
@ -58,7 +58,6 @@
], ],
"dependencies": { "dependencies": {
"@types/node": "^20.3.1", "@types/node": "^20.3.1",
"fflate": "^0.8.0",
"jszip": "^3.10.1", "jszip": "^3.10.1",
"nanoid": "^4.0.2", "nanoid": "^4.0.2",
"xml": "^1.0.1", "xml": "^1.0.1",

View File

@ -53,7 +53,7 @@ export interface PatchDocumentOptions {
const imageReplacer = new ImageReplacer(); const imageReplacer = new ImageReplacer();
export const patchDocument = async (data: InputDataType, options: PatchDocumentOptions): Promise<Buffer> => { export const patchDocument = async (data: InputDataType, options: PatchDocumentOptions): Promise<Uint8Array> => {
const zipContent = await JSZip.loadAsync(data); const zipContent = await JSZip.loadAsync(data);
const contexts = new Map<string, IContext>(); const contexts = new Map<string, IContext>();
const file = { const file = {
@ -213,7 +213,7 @@ export const patchDocument = async (data: InputDataType, options: PatchDocumentO
} }
return zip.generateAsync({ return zip.generateAsync({
type: "nodebuffer", type: "uint8array",
mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
compression: "DEFLATE", compression: "DEFLATE",
}); });

View File

@ -10,6 +10,9 @@ export default defineConfig({
dts(), dts(),
nodePolyfills({ nodePolyfills({
exclude: ["fs"], exclude: ["fs"],
globals: {
Buffer: false,
},
protocolImports: true, protocolImports: true,
}), }),
], ],
@ -26,7 +29,25 @@ export default defineConfig({
lib: { lib: {
entry: [resolve(__dirname, "src/index.ts")], entry: [resolve(__dirname, "src/index.ts")],
name: "docx", name: "docx",
fileName: "index", fileName: (d) => {
if (d === "umd") {
return "index.umd.js";
}
if (d === "cjs") {
return "index.cjs";
}
if (d === "es") {
return "index.js";
}
if (d === "iife") {
return "index.iife.js";
}
return "unknown";
},
formats: ["iife", "es", "cjs", "umd"], formats: ["iife", "es", "cjs", "umd"],
}, },
outDir: resolve(__dirname, "build"), outDir: resolve(__dirname, "build"),