main.js
import { MainView, initCadContainer, Engine } from "vjcad";
// ===== 换成你的服务配置(公有云 https://vjmap.com/server/api/v1,私有化 http://<ip>:27660/api/v1)=====
// wasm / 字体默认从 serviceUrl 所指服务加载,不要另设 wasmServiceUrl
const serviceUrl = import.meta.env.VITE_VJMAP_SERVICE_URL ?? "https://vjmap.com/server/api/v1";
const accessToken = import.meta.env.VITE_VJMAP_TOKEN ?? ""; // 不要把真实 token 提交进仓库
async function main() {
const cadView = new MainView({
appname: "vjcad-vite-app",
version: "v1.0.0",
serviceUrl,
accessToken,
sidebarStyle: "both", // both | left | right | none
// viewMode: "viewer", // 只读查看模式
// showUcsIcon: false, showAxis: false, enableContextMenu: false, showGrips: false
});
initCadContainer("cad-app", cadView); // 容器必须有非零宽高
await cadView.onLoad(); // 这一步之前 Engine 不可用
// onLoad 之后才可以用 Engine。Engine 是全局单例,绑定最近活跃视图;
// 多实例下切换视图前先 Engine.bindViewCache(cadView),或直接操作实例成员 cadView.editor / cadView.pcanvas
// 示例:触发画线命令
// Engine.editor.executerWithOp("LINE");
console.log("vjcad ready", Engine.currentDoc ? "doc ok" : "no doc");
}
// vite 默认构建 target 不支持顶层 await,包一层 async main
main().catch(console.error);