109 lines
4.2 KiB
TypeScript
109 lines
4.2 KiB
TypeScript
import { defineConfig } from "vite";
|
|
import { fastPublicAssets } from "./tools/fast-public-assets.ts";
|
|
|
|
const isolationHeaders = {
|
|
"Cross-Origin-Opener-Policy": "same-origin",
|
|
"Cross-Origin-Embedder-Policy": "require-corp",
|
|
};
|
|
|
|
export default defineConfig({
|
|
server: { headers: isolationHeaders },
|
|
preview: { headers: isolationHeaders },
|
|
plugins: [...(process.env.FREECAD_WEB_FAST_LINK === "ON" ? [fastPublicAssets()] : []), {
|
|
name: "freecad-web-csp",
|
|
transformIndexHtml(html) {
|
|
const policy = "default-src 'self'; script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' blob:; worker-src 'self' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self'; object-src 'none'; base-uri 'self'";
|
|
return {
|
|
html,
|
|
tags: [
|
|
{ tag: "meta", attrs: { "http-equiv": "Content-Security-Policy", content: policy }, injectTo: "head" },
|
|
{ tag: "script", attrs: { type: "module", src: "/module-preload.js" }, injectTo: "head-prepend" },
|
|
],
|
|
};
|
|
},
|
|
}],
|
|
build: {
|
|
rollupOptions: {
|
|
input: {
|
|
main: "index.html",
|
|
core: "core.html",
|
|
document: "document.html",
|
|
"main-chain": "main-chain.html",
|
|
project: "project.html",
|
|
full: "full.html",
|
|
workbench: "workbench.html",
|
|
python: "python.html",
|
|
assembly: "assembly.html",
|
|
bim: "bim.html",
|
|
cam: "cam.html",
|
|
cloud: "cloud.html",
|
|
draft: "draft.html",
|
|
fem: "fem.html",
|
|
help: "help.html",
|
|
import: "import.html",
|
|
inspection: "inspection.html",
|
|
jtreader: "jtreader.html",
|
|
material: "material.html",
|
|
measure: "measure.html",
|
|
mesh: "mesh.html",
|
|
meshpart: "meshpart.html",
|
|
openscad: "openscad.html",
|
|
part: "part.html",
|
|
"part-io": "part-io.html",
|
|
"part-inspect": "part-inspect.html",
|
|
"part-python": "part-python.html",
|
|
"part-save": "part-save.html",
|
|
"partdesign-save": "partdesign-save.html",
|
|
partdesign: "partdesign.html",
|
|
"partdesign-inspect": "partdesign-inspect.html",
|
|
"partdesign-python": "partdesign-python.html",
|
|
"points-save": "points-save.html",
|
|
points: "points.html",
|
|
sandbox: "sandbox.html",
|
|
"sandbox-inspect": "sandbox-inspect.html",
|
|
"sandbox-python": "sandbox-python.html",
|
|
"sandbox-save": "sandbox-save.html",
|
|
sketcher: "sketcher.html",
|
|
"sketcher-persistence": "sketcher-persistence.html",
|
|
"plot-python": "plot-python.html",
|
|
"reverseengineering-inspect": "reverseengineering-inspect.html",
|
|
"reverseengineering-python": "reverseengineering-python.html",
|
|
"reverseengineering-save": "reverseengineering-save.html",
|
|
"reverseengineering-create": "reverseengineering-create.html",
|
|
"robot-create": "robot-create.html",
|
|
"robot-save": "robot-save.html",
|
|
"robot-inspect": "robot-inspect.html",
|
|
"robot-python": "robot-python.html",
|
|
spreadsheet: "spreadsheet.html",
|
|
"spreadsheet-inspect": "spreadsheet-inspect.html",
|
|
"spreadsheet-python": "spreadsheet-python.html",
|
|
"spreadsheet-save": "spreadsheet-save.html",
|
|
"surface-save": "surface-save.html",
|
|
start: "start.html",
|
|
"start-inspect": "start-inspect.html",
|
|
"start-python": "start-python.html",
|
|
templatepymod: "templatepymod.html",
|
|
"templatepymod-python": "templatepymod-python.html",
|
|
web: "web.html",
|
|
test: "test.html",
|
|
"web-action-03": "web-persistence.html",
|
|
tux: "tux.html",
|
|
techdraw: "techdraw.html",
|
|
"techdraw-native": "techdraw-native.html",
|
|
"techdraw-inspect": "techdraw-inspect.html",
|
|
"techdraw-python": "techdraw-python.html",
|
|
"techdraw-save": "techdraw-save.html",
|
|
surface: "surface.html",
|
|
"surface-inspect": "surface-inspect.html",
|
|
"surface-python": "surface-python.html",
|
|
"show-inspect": "show-inspect.html",
|
|
"show-python": "show-python.html",
|
|
"sketcher-inspect": "sketcher-inspect.html",
|
|
"sketcher-python": "sketcher-python.html",
|
|
"points-inspect": "points-inspect.html",
|
|
"points-python": "points-python.html",
|
|
},
|
|
},
|
|
},
|
|
});
|