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",
|
"type": "module",
|
||||||
"main": "./dist/lib/page-agent.js",
|
"main": "./dist/lib/page-agent.js",
|
||||||
"module": "./dist/lib/page-agent.js",
|
"module": "./dist/lib/page-agent.js",
|
||||||
"types": "./dist/types/entry.d.ts",
|
"types": "./dist/lib/PageAgent.d.ts",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": {
|
||||||
"types": "./dist/types/entry.d.ts",
|
"types": "./dist/lib/PageAgent.d.ts",
|
||||||
"import": "./dist/lib/page-agent.js",
|
"import": "./dist/lib/page-agent.js",
|
||||||
"default": "./dist/lib/page-agent.js"
|
"default": "./dist/lib/page-agent.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist/lib/",
|
"dist/lib/",
|
||||||
"dist/types/",
|
|
||||||
"README.md",
|
"README.md",
|
||||||
"LICENSE",
|
"LICENSE",
|
||||||
"NOTICE"
|
"NOTICE"
|
||||||
@@ -43,10 +42,10 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"start": "vite",
|
"start": "vite",
|
||||||
"build": "tsc -b && vite build && npm run build:lib",
|
"build": "tsc -b && vite build && npm run build:lib && npm run build:umd",
|
||||||
"build:lib": "npm run types:lib && vite build --config vite.lib.config.ts",
|
"build:lib": "vite build --config vite.lib.config.ts",
|
||||||
"build:lib:watch": "vite build --config vite.lib.config.ts --watch",
|
"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 .",
|
"lint": "eslint .",
|
||||||
"prepare": "husky"
|
"prepare": "husky"
|
||||||
},
|
},
|
||||||
@@ -82,6 +81,7 @@
|
|||||||
"tailwindcss": "^4.1.11",
|
"tailwindcss": "^4.1.11",
|
||||||
"typescript": "^5.9.2",
|
"typescript": "^5.9.2",
|
||||||
"typescript-eslint": "^8.39.0",
|
"typescript-eslint": "^8.39.0",
|
||||||
|
"unplugin-dts": "^1.0.0-beta.6",
|
||||||
"vite": "^7.0.4",
|
"vite": "^7.0.4",
|
||||||
"vite-plugin-css-injected-by-js": "^3.5.2",
|
"vite-plugin-css-injected-by-js": "^3.5.2",
|
||||||
"wouter": "^3.7.1"
|
"wouter": "^3.7.1"
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
{
|
{
|
||||||
"extends": "./tsconfig.app.json",
|
"extends": "./tsconfig.app.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.lib.tsbuildinfo",
|
// "composite": true,
|
||||||
"composite": true,
|
|
||||||
"noEmit": false,
|
"noEmit": false,
|
||||||
"declaration": true,
|
"declaration": true,
|
||||||
"declarationMap": true,
|
"declarationMap": true,
|
||||||
|
|||||||
@@ -21,5 +21,5 @@
|
|||||||
"noFallthroughCasesInSwitch": true,
|
"noFallthroughCasesInSwitch": true,
|
||||||
"noUncheckedSideEffectImports": 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 { dirname, resolve } from 'path'
|
||||||
|
import dts from 'unplugin-dts/vite'
|
||||||
import { fileURLToPath } from 'url'
|
import { fileURLToPath } from 'url'
|
||||||
import { defineConfig } from 'vite'
|
import { defineConfig } from 'vite'
|
||||||
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
|
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
|
||||||
@@ -9,7 +9,10 @@ const __dirname = dirname(__filename)
|
|||||||
|
|
||||||
// Library build configuration
|
// Library build configuration
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [react(), cssInjectedByJsPlugin({ relativeCSSInjection: true })],
|
plugins: [
|
||||||
|
dts({ tsconfigPath: './tsconfig.lib.json' }),
|
||||||
|
cssInjectedByJsPlugin({ relativeCSSInjection: true }),
|
||||||
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'@': resolve(__dirname, 'src'),
|
'@': resolve(__dirname, 'src'),
|
||||||
@@ -22,16 +25,14 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
build: {
|
build: {
|
||||||
lib: {
|
lib: {
|
||||||
entry: resolve(__dirname, 'src/entry.ts'),
|
entry: resolve(__dirname, 'src/PageAgent.ts'),
|
||||||
name: 'PageAgent',
|
name: 'PageAgent',
|
||||||
fileName: 'page-agent',
|
fileName: 'page-agent',
|
||||||
formats: ['umd', 'es'],
|
formats: ['es'],
|
||||||
},
|
},
|
||||||
outDir: resolve(__dirname, 'dist', 'lib'),
|
outDir: resolve(__dirname, 'dist', 'lib'),
|
||||||
rollupOptions: {
|
rollupOptions: {
|
||||||
// ESM 包 应该 external,但是 UMD 时不能 external
|
external: ['@ai-sdk/openai', 'ai', 'ai-motion', 'chalk', 'zod'],
|
||||||
// @TODO 分成两份配置
|
|
||||||
// external: ['@ai-sdk/openai', 'ai', 'ai-motion', 'chalk', 'zod'],
|
|
||||||
output: {
|
output: {
|
||||||
globals: {
|
globals: {
|
||||||
// 定义全局变量映射
|
// 定义全局变量映射
|
||||||
@@ -39,7 +40,8 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
// minify: 'terser',
|
// minify: 'terser',
|
||||||
// sourcemap: true,
|
minify: false,
|
||||||
|
sourcemap: true,
|
||||||
},
|
},
|
||||||
define: {
|
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