mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-29 11:02:28 +08:00

webpack bundling already ran before this script, so there is no need to copy this file over
116 lines
3.9 KiB
TypeScript
116 lines
3.9 KiB
TypeScript
import fs from "fs-extra";
|
|
import path from "path";
|
|
|
|
const DEST_DIR = "./dist";
|
|
const DEST_DIR_SRC = path.join(DEST_DIR, "src");
|
|
const DEST_DIR_NODE_MODULES = path.join(DEST_DIR, "node_modules");
|
|
|
|
const VERBOSE = process.env.VERBOSE;
|
|
|
|
function log(...args: any[]) {
|
|
if (VERBOSE) {
|
|
console.log(...args);
|
|
}
|
|
}
|
|
|
|
async function copyNodeModuleFileOrFolder(source: string) {
|
|
const adjustedSource = source.substring(13);
|
|
const destination = path.join(DEST_DIR_NODE_MODULES, adjustedSource);
|
|
|
|
log(`Copying ${source} to ${destination}`);
|
|
await fs.ensureDir(path.dirname(destination));
|
|
await fs.copy(source, destination);
|
|
}
|
|
|
|
const copy = async () => {
|
|
for (const srcFile of fs.readdirSync("build")) {
|
|
const destFile = path.join(DEST_DIR, path.basename(srcFile));
|
|
log(`Copying source ${srcFile} -> ${destFile}.`);
|
|
fs.copySync(path.join("build", srcFile), destFile, { recursive: true });
|
|
}
|
|
|
|
const filesToCopy = [
|
|
"config-sample.ini",
|
|
"./src/etapi/etapi.openapi.yaml",
|
|
"./src/routes/api/openapi.json"
|
|
];
|
|
for (const file of filesToCopy) {
|
|
log(`Copying ${file}`);
|
|
await fs.copy(file, path.join(DEST_DIR, file));
|
|
}
|
|
|
|
const dirsToCopy = ["images", "libraries", "translations", "db"];
|
|
for (const dir of dirsToCopy) {
|
|
log(`Copying ${dir}`);
|
|
await fs.copy(dir, path.join(DEST_DIR, dir));
|
|
}
|
|
|
|
const srcDirsToCopy = ["./src/public", "./src/views", "./build"];
|
|
for (const dir of srcDirsToCopy) {
|
|
log(`Copying ${dir}`);
|
|
await fs.copy(dir, path.join(DEST_DIR_SRC, path.basename(dir)));
|
|
}
|
|
|
|
/**
|
|
* Directories to be copied relative to the project root into <resource_dir>/src/public/app-dist.
|
|
*/
|
|
const publicDirsToCopy = ["./src/public/app/doc_notes"];
|
|
const PUBLIC_DIR = path.join(DEST_DIR, "src", "public", "app-dist");
|
|
for (const dir of publicDirsToCopy) {
|
|
await fs.copy(dir, path.join(PUBLIC_DIR, path.basename(dir)));
|
|
}
|
|
|
|
const nodeModulesFile = [
|
|
"node_modules/react/umd/react.production.min.js",
|
|
"node_modules/react/umd/react.development.js",
|
|
"node_modules/react-dom/umd/react-dom.production.min.js",
|
|
"node_modules/react-dom/umd/react-dom.development.js",
|
|
"node_modules/katex/dist/katex.min.js",
|
|
"node_modules/katex/dist/contrib/mhchem.min.js",
|
|
"node_modules/katex/dist/contrib/auto-render.min.js",
|
|
"node_modules/@highlightjs/cdn-assets/highlight.min.js",
|
|
"node_modules/@mind-elixir/node-menu/dist/node-menu.umd.cjs"
|
|
];
|
|
|
|
for (const file of nodeModulesFile) {
|
|
await copyNodeModuleFileOrFolder(file);
|
|
}
|
|
|
|
const nodeModulesFolder = [
|
|
"node_modules/@excalidraw/excalidraw/dist/",
|
|
"node_modules/katex/dist/",
|
|
"node_modules/dayjs/",
|
|
"node_modules/boxicons/css/",
|
|
"node_modules/boxicons/fonts/",
|
|
"node_modules/mermaid/dist/",
|
|
"node_modules/jquery/dist/",
|
|
"node_modules/jquery-hotkeys/",
|
|
"node_modules/split.js/dist/",
|
|
"node_modules/panzoom/dist/",
|
|
"node_modules/i18next/",
|
|
"node_modules/i18next-http-backend/",
|
|
"node_modules/jsplumb/dist/",
|
|
"node_modules/vanilla-js-wheel-zoom/dist/",
|
|
"node_modules/mark.js/dist/",
|
|
"node_modules/normalize.css/",
|
|
"node_modules/jquery.fancytree/dist/",
|
|
"node_modules/autocomplete.js/dist/",
|
|
"node_modules/codemirror/lib/",
|
|
"node_modules/codemirror/addon/",
|
|
"node_modules/codemirror/mode/",
|
|
"node_modules/codemirror/keymap/",
|
|
"node_modules/mind-elixir/dist/",
|
|
"node_modules/@highlightjs/cdn-assets/languages",
|
|
"node_modules/@highlightjs/cdn-assets/styles",
|
|
"node_modules/leaflet/dist"
|
|
];
|
|
|
|
for (const folder of nodeModulesFolder) {
|
|
await copyNodeModuleFileOrFolder(folder);
|
|
}
|
|
};
|
|
|
|
copy()
|
|
.then(() => console.log("Copying complete!"))
|
|
.catch((err) => console.error("Error during copy:", err));
|