feat: vite support

This commit is contained in:
liufree 2025-03-01 17:23:19 +08:00
parent 557114bb5b
commit fc5b4b9260
4 changed files with 38 additions and 60 deletions

View file

@ -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();
}

View file

@ -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"
}
}

View file

@ -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) => {

27
vite.config.js Normal file
View file

@ -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: '.',
},
};
});