From fc5b4b9260b1bff988baaf3223747a40642f0773 Mon Sep 17 00:00:00 2001 From: liufree Date: Sat, 1 Mar 2025 17:23:19 +0800 Subject: [PATCH] feat: vite support --- esbuild.config.mjs | 49 ----------------------------------------- package.json | 21 +++++++++--------- src/pages/TableDemo.tsx | 1 + vite.config.js | 27 +++++++++++++++++++++++ 4 files changed, 38 insertions(+), 60 deletions(-) delete mode 100644 esbuild.config.mjs create mode 100644 vite.config.js diff --git a/esbuild.config.mjs b/esbuild.config.mjs deleted file mode 100644 index 309f17b..0000000 --- a/esbuild.config.mjs +++ /dev/null @@ -1,49 +0,0 @@ -import esbuild from "esbuild"; -import process from "process"; -import builtins from "builtin-modules"; - -const banner = -`/* -THIS IS A GENERATED/BUNDLED FILE BY ESBUILD -if you want to view the source, please visit the github repository of this plugin -*/ -`; - -const prod = (process.argv[2] === "production"); - -const context = await esbuild.context({ - banner: { - js: banner, - }, - entryPoints: ["src/main.ts"], - bundle: true, - external: [ - "obsidian", - "electron", - "@codemirror/autocomplete", - "@codemirror/collab", - "@codemirror/commands", - "@codemirror/language", - "@codemirror/lint", - "@codemirror/search", - "@codemirror/state", - "@codemirror/view", - "@lezer/common", - "@lezer/highlight", - "@lezer/lr", - ...builtins], - format: "cjs", - target: "es2018", - logLevel: "info", - sourcemap: prod ? false : "inline", - treeShaking: true, - outfile: "main.js", - minify: prod, -}); - -if (prod) { - await context.rebuild(); - process.exit(0); -} else { - await context.watch(); -} diff --git a/package.json b/package.json index cc6f9ec..6913100 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,7 @@ "description": "This is a sample plugin for Obsidian (https://obsidian.md)", "main": "main.js", "scripts": { - "dev": "node esbuild.config.mjs", - "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", + "build": "vite build", "version": "node version-bump.mjs && git add manifest.json versions.json" }, "keywords": [], @@ -14,26 +13,26 @@ "dependencies": { "@ant-design/icons": "^5.0.1", "@ant-design/pro-components": "^2.4.4", - "umi-request": "^1.4.0", "antd": "^5.4.0", - "obsidian-dataview": "^0.5.67" + "obsidian-dataview": "^0.5.67", + "umi-request": "^1.4.0" }, "devDependencies": { - "@types/node": "^16.11.6", + "@types/node": "^22.13.8", + "@types/react": "^18.0.33", + "@types/react-dom": "^18.0.11", "@typescript-eslint/eslint-plugin": "5.29.0", "@typescript-eslint/parser": "5.29.0", "builtin-modules": "3.3.0", "esbuild": "0.17.3", - "obsidian": "latest", - "tslib": "2.4.0", - "@types/react": "^18.0.33", - "@types/react-dom": "^18.0.11", "husky": "^9", "lint-staged": "^13.2.0", + "obsidian": "latest", "prettier": "^2.8.7", "prettier-plugin-organize-imports": "^3.2.2", "prettier-plugin-packagejson": "^2.4.3", - "typescript": "^5.0.3" - + "tslib": "2.4.0", + "typescript": "^5.0.3", + "vite": "^6.2.0" } } diff --git a/src/pages/TableDemo.tsx b/src/pages/TableDemo.tsx index 03f556b..70ba129 100644 --- a/src/pages/TableDemo.tsx +++ b/src/pages/TableDemo.tsx @@ -6,6 +6,7 @@ import {useEffect, useRef} from 'react'; import React from 'react'; import request from 'umi-request'; import { getAPI } from 'obsidian-dataview'; +// import 'antd/dist/antd.css'; export const waitTimePromise = async (time: number = 100) => { return new Promise((resolve) => { diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..2ff3c7c --- /dev/null +++ b/vite.config.js @@ -0,0 +1,27 @@ +import path from 'path'; +import { defineConfig } from 'vite'; + +export default defineConfig(({ mode }) => { + return { + build: { + sourcemap: mode === 'development' ? 'inline' : false, + minify: false, + // Use Vite lib mode https://vitejs.dev/guide/build.html#library-mode + lib: { + entry: path.resolve(__dirname, './src/main.ts'), + formats: ['cjs'], + }, + rollupOptions: { + output: { + // Overwrite default Vite output fileName + entryFileNames: 'main.js', + assetFileNames: 'styles.css', + }, + external: ['obsidian','antd/dist/antd.css'], + }, + // Use root as the output dir + emptyOutDir: false, + outDir: '.', + }, + }; +});