diff --git a/.gitignore b/.gitignore index 6950d858..3babfe0d 100644 --- a/.gitignore +++ b/.gitignore @@ -34,4 +34,6 @@ theme.css theme.js vendor zhi.js -dist-cjs \ No newline at end of file +dist-cjs +*.d.ts +*.map \ No newline at end of file diff --git a/build.ts b/build.ts index 1e78f855..65b0ca1d 100644 --- a/build.ts +++ b/build.ts @@ -27,6 +27,7 @@ import { build } from "vite" import path from "path" +import dts from "vite-plugin-dts" // libraries const libraries = [ @@ -46,6 +47,7 @@ const libraries = [ for (const libItem of libraries) { await build({ configFile: false, + plugins: [dts()], resolve: { alias: [ { diff --git a/config/api-extractor.json b/config/api-extractor.json index f9bb99d5..4953c7c8 100644 --- a/config/api-extractor.json +++ b/config/api-extractor.json @@ -45,7 +45,7 @@ * * SUPPORTED TOKENS: , , */ - "mainEntryPointFilePath": "/lib/src/index.d.ts", + "mainEntryPointFilePath": "/theme.d.ts", /** * A list of NPM package names whose exports should be treated as part of this package. diff --git a/package.json b/package.json index 9bc23158..67cbee3f 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "ts-node": "^10.9.1", "typescript": "^4.9.5", "vite": "^4.1.4", + "vite-plugin-dts": "^2.1.0", "vitepress": "1.0.0-alpha.50", "vitepress-plugin-autobar": "^1.0.8", "vitest": "^0.29.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 64a389f3..321c7e5b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,6 +16,7 @@ specifiers: ts-node: ^10.9.1 typescript: ^4.9.5 vite: ^4.1.4 + vite-plugin-dts: ^2.1.0 vitepress: 1.0.0-alpha.50 vitepress-plugin-autobar: ^1.0.8 vitest: ^0.29.2 @@ -40,6 +41,7 @@ devDependencies: ts-node: 10.9.1_zix2iy4c4a7fivhrc3ey4gy2pu typescript: 4.9.5 vite: 4.1.4_rrqazumqrxmcgxhfest3v5keaq + vite-plugin-dts: 2.1.0_palfitq7jg67mg4usbzuzyleke vitepress: 1.0.0-alpha.50_rrqazumqrxmcgxhfest3v5keaq vitepress-plugin-autobar: 1.0.8 vitest: 0.29.2_stylus@0.59.0 @@ -2645,6 +2647,20 @@ packages: fastq: 1.15.0 dev: true + /@rollup/pluginutils/5.0.2: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@rushstack/node-core-library/3.55.2_@types+node@16.18.14: resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==} peerDependencies: @@ -2679,6 +2695,15 @@ packages: string-argv: 0.3.1 dev: true + /@ts-morph/common/0.18.1: + resolution: {integrity: sha512-RVE+zSRICWRsfrkAw5qCAK+4ZH9kwEFv5h0+/YeHTLieWP7F4wWq4JsKFuNWG+fYh/KF+8rAtgdj5zb2mm+DVA==} + dependencies: + fast-glob: 3.2.12 + minimatch: 5.1.6 + mkdirp: 1.0.4 + path-browserify: 1.0.1 + dev: true + /@tsconfig/node10/1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} dev: true @@ -2709,6 +2734,10 @@ packages: resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} dev: true + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + /@types/istanbul-lib-coverage/2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} dev: true @@ -3751,6 +3780,10 @@ packages: engines: {node: '>=0.8'} dev: true + /code-block-writer/11.0.3: + resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==} + dev: true + /collect-all/1.0.4: resolution: {integrity: sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==} engines: {node: '>=0.10.0'} @@ -4955,6 +4988,10 @@ packages: graceful-fs: 4.2.10 dev: true + /kolorist/1.7.0: + resolution: {integrity: sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==} + dev: true + /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -5063,6 +5100,13 @@ packages: sourcemap-codec: 1.4.8 dev: true + /magic-string/0.29.0: + resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /make-dir/3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -5277,6 +5321,10 @@ packages: callsites: 3.1.0 dev: true + /path-browserify/1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -5837,6 +5885,13 @@ packages: is-number: 7.0.0 dev: true + /ts-morph/17.0.1: + resolution: {integrity: sha512-10PkHyXmrtsTvZSL+cqtJLTgFXkU43Gd0JCc0Rw6GchWbqKe0Rwgt1v3ouobTZwQzF1mGhDeAlWYBMGRV7y+3g==} + dependencies: + '@ts-morph/common': 0.18.1 + code-block-writer: 11.0.3 + dev: true + /ts-node/10.9.1_zix2iy4c4a7fivhrc3ey4gy2pu: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -6038,6 +6093,29 @@ packages: - terser dev: true + /vite-plugin-dts/2.1.0_palfitq7jg67mg4usbzuzyleke: + resolution: {integrity: sha512-Vw0FdCuM3VLR4hTFHh0yMEzfwI7NyFvPIMFwvE+Q0t4qtoHIfYOP/JXs7nTnHuQk87FSjlhGeIJ1fLBcktgPgA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: '>=2.9.0' + dependencies: + '@babel/parser': 7.21.2 + '@microsoft/api-extractor': 7.34.4_@types+node@16.18.14 + '@rollup/pluginutils': 5.0.2 + '@rushstack/node-core-library': 3.55.2_@types+node@16.18.14 + debug: 4.3.4 + fast-glob: 3.2.12 + fs-extra: 10.1.0 + kolorist: 1.7.0 + magic-string: 0.29.0 + ts-morph: 17.0.1 + vite: 4.1.4_rrqazumqrxmcgxhfest3v5keaq + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + /vite/2.9.15_stylus@0.59.0: resolution: {integrity: sha512-fzMt2jK4vQ3yK56te3Kqpkaeq9DkcZfBbzHwYpobasvgYmP2SoAr6Aic05CsB4CzCZbsDv4sujX3pkEGhLabVQ==} engines: {node: '>=12.2.0'} diff --git a/script/clean.py b/script/clean.py index 3664a01c..bd3a1480 100644 --- a/script/clean.py +++ b/script/clean.py @@ -19,16 +19,6 @@ scriptutils.rm_files("./src/**/*.js") scriptutils.rm_files("./src/*.js") - if scriptutils.is_dir_empty("./lib/src"): - scriptutils.rm_folder("./lib/src") - - # lib - scriptutils.rm_files("./lib/**/*.d.ts") - scriptutils.rm_files("./lib/*.d.ts") - - scriptutils.rm_files("./lib/**/*.map") - scriptutils.rm_files("./lib/*.map") - # none default dts scriptutils.rm_files("./typings/*alpha.d.ts") scriptutils.rm_files("./typings/*beta.d.ts") diff --git a/src/apps/zhi/bootstrap.ts b/src/apps/zhi/bootstrap.ts index 783255d8..d398ea2e 100644 --- a/src/apps/zhi/bootstrap.ts +++ b/src/apps/zhi/bootstrap.ts @@ -32,7 +32,7 @@ import DependencyItem from "~/src/models/DependencyItem" * @author terwer * @since 1.0.0 */ -export class Bootstrap { +class Bootstrap { private static lifecycle: Lifecycle static { @@ -47,3 +47,5 @@ export class Bootstrap { return Promise.resolve(Bootstrap.lifecycle.dynamicImports) } } + +export default Bootstrap diff --git a/src/apps/zhi/zhi.ts b/src/apps/zhi/zhi.ts index 8c232d8b..7c6344fe 100644 --- a/src/apps/zhi/zhi.ts +++ b/src/apps/zhi/zhi.ts @@ -28,7 +28,7 @@ import ThemeFromEnum from "~/src/enums/themeFromEnum" import strUtil from "~/src/utils/strUtil" import DependencyItem from "~/src/models/DependencyItem" import ZhiUtil from "~/src/utils/ZhiUtil" -import { Bootstrap } from "~/src/apps/zhi/bootstrap" +import Bootstrap from "~/src/apps/zhi/bootstrap" /** * 主题入口 diff --git a/theme.ts b/theme.ts index 47f835fa..df695db2 100644 --- a/theme.ts +++ b/theme.ts @@ -31,6 +31,9 @@ import Zhi from "~/src/apps/zhi/zhi" import ZhiUtil from "~/src/utils/ZhiUtil" import siyuanUtil from "~/src/utils/siyuanUtil" +import Bootstrap from "~/src/apps/zhi/bootstrap" +import Lifecycle from "~/src/apps/zhi/Lifecycle" +import DependencyItem from "~/src/models/DependencyItem" // 特别提醒1⚠️:此文件是主题的唯一入口,会在构建时自动生成js文件 // 特别提醒2⚠️:该文件由思源笔记自动加载,请勿主动调用此文件中的任何方法 @@ -88,3 +91,4 @@ class Theme { })() export default Theme +export { Bootstrap, Lifecycle, DependencyItem } diff --git a/vite.config.ts b/vite.config.ts index a106f7ae..9df881b3 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -25,9 +25,10 @@ import path from "path" import { defineConfig } from "vite" +import dts from "vite-plugin-dts" export default defineConfig({ - plugins: [], + plugins: [dts()], resolve: { alias: [ {