feat: separate umd and lib build
This commit is contained in:
845
package-lock.json
generated
845
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
@@ -5,17 +5,16 @@
|
||||
"type": "module",
|
||||
"main": "./dist/lib/page-agent.js",
|
||||
"module": "./dist/lib/page-agent.js",
|
||||
"types": "./dist/types/entry.d.ts",
|
||||
"types": "./dist/lib/PageAgent.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/types/entry.d.ts",
|
||||
"types": "./dist/lib/PageAgent.d.ts",
|
||||
"import": "./dist/lib/page-agent.js",
|
||||
"default": "./dist/lib/page-agent.js"
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"dist/lib/",
|
||||
"dist/types/",
|
||||
"README.md",
|
||||
"LICENSE",
|
||||
"NOTICE"
|
||||
@@ -43,10 +42,10 @@
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"start": "vite",
|
||||
"build": "tsc -b && vite build && npm run build:lib",
|
||||
"build:lib": "npm run types:lib && vite build --config vite.lib.config.ts",
|
||||
"build": "tsc -b && vite build && npm run build:lib && npm run build:umd",
|
||||
"build:lib": "vite build --config vite.lib.config.ts",
|
||||
"build:lib:watch": "vite build --config vite.lib.config.ts --watch",
|
||||
"types:lib": "tsc -p tsconfig.lib.json",
|
||||
"build:umd": "vite build --config vite.umd.config.ts",
|
||||
"lint": "eslint .",
|
||||
"prepare": "husky"
|
||||
},
|
||||
@@ -82,6 +81,7 @@
|
||||
"tailwindcss": "^4.1.11",
|
||||
"typescript": "^5.9.2",
|
||||
"typescript-eslint": "^8.39.0",
|
||||
"unplugin-dts": "^1.0.0-beta.6",
|
||||
"vite": "^7.0.4",
|
||||
"vite-plugin-css-injected-by-js": "^3.5.2",
|
||||
"wouter": "^3.7.1"
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{
|
||||
"extends": "./tsconfig.app.json",
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.lib.tsbuildinfo",
|
||||
"composite": true,
|
||||
// "composite": true,
|
||||
"noEmit": false,
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
|
||||
@@ -21,5 +21,5 @@
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"noUncheckedSideEffectImports": true
|
||||
},
|
||||
"include": ["vite.config.ts", "vite.lib.config.ts"]
|
||||
"include": ["vite.config.ts", "vite.lib.config.ts", "vite.umd.config.ts"]
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import react from '@vitejs/plugin-react-swc'
|
||||
import { dirname, resolve } from 'path'
|
||||
import dts from 'unplugin-dts/vite'
|
||||
import { fileURLToPath } from 'url'
|
||||
import { defineConfig } from 'vite'
|
||||
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
|
||||
@@ -9,7 +9,10 @@ const __dirname = dirname(__filename)
|
||||
|
||||
// Library build configuration
|
||||
export default defineConfig({
|
||||
plugins: [react(), cssInjectedByJsPlugin({ relativeCSSInjection: true })],
|
||||
plugins: [
|
||||
dts({ tsconfigPath: './tsconfig.lib.json' }),
|
||||
cssInjectedByJsPlugin({ relativeCSSInjection: true }),
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': resolve(__dirname, 'src'),
|
||||
@@ -22,16 +25,14 @@ export default defineConfig({
|
||||
},
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(__dirname, 'src/entry.ts'),
|
||||
entry: resolve(__dirname, 'src/PageAgent.ts'),
|
||||
name: 'PageAgent',
|
||||
fileName: 'page-agent',
|
||||
formats: ['umd', 'es'],
|
||||
formats: ['es'],
|
||||
},
|
||||
outDir: resolve(__dirname, 'dist', 'lib'),
|
||||
rollupOptions: {
|
||||
// ESM 包 应该 external,但是 UMD 时不能 external
|
||||
// @TODO 分成两份配置
|
||||
// external: ['@ai-sdk/openai', 'ai', 'ai-motion', 'chalk', 'zod'],
|
||||
external: ['@ai-sdk/openai', 'ai', 'ai-motion', 'chalk', 'zod'],
|
||||
output: {
|
||||
globals: {
|
||||
// 定义全局变量映射
|
||||
@@ -39,7 +40,8 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
// minify: 'terser',
|
||||
// sourcemap: true,
|
||||
minify: false,
|
||||
sourcemap: true,
|
||||
},
|
||||
define: {
|
||||
// 替换环境变量
|
||||
|
||||
44
vite.umd.config.ts
Normal file
44
vite.umd.config.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { dirname, resolve } from 'path'
|
||||
import { fileURLToPath } from 'url'
|
||||
import { defineConfig } from 'vite'
|
||||
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url)
|
||||
const __dirname = dirname(__filename)
|
||||
|
||||
// Library build configuration
|
||||
export default defineConfig({
|
||||
plugins: [cssInjectedByJsPlugin({ relativeCSSInjection: true })],
|
||||
resolve: {
|
||||
alias: {
|
||||
'@': resolve(__dirname, 'src'),
|
||||
},
|
||||
},
|
||||
publicDir: false,
|
||||
esbuild: {
|
||||
// 禁用严格的未使用变量检查
|
||||
keepNames: true,
|
||||
},
|
||||
build: {
|
||||
lib: {
|
||||
entry: resolve(__dirname, 'src/entry.ts'),
|
||||
name: 'PageAgent',
|
||||
fileName: 'page-agent',
|
||||
formats: ['umd'],
|
||||
},
|
||||
outDir: resolve(__dirname, 'dist', 'umd'),
|
||||
rollupOptions: {
|
||||
output: {
|
||||
globals: {
|
||||
// 定义全局变量映射
|
||||
},
|
||||
},
|
||||
},
|
||||
// minify: 'terser',
|
||||
// sourcemap: true,
|
||||
},
|
||||
define: {
|
||||
// 替换环境变量
|
||||
'process.env.NODE_ENV': '"production"',
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user