Skip to content

Commit 0be5204

Browse files
committed
chore(ci): replace custom publish plugin
1 parent c27280b commit 0be5204

File tree

6 files changed

+314
-37
lines changed

6 files changed

+314
-37
lines changed

packages/demo/vite.config.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,5 @@ import { defineConfig } from "vite";
33

44
// https://vitejs.dev/config/
55
export default defineConfig({
6-
// esbuild: {
7-
// // https://github.com/vitejs/vite/issues/8644#issuecomment-1159308803
8-
// logOverride: { "this-is-undefined-in-esm": "silent" },
9-
// },
106
plugins: [react()],
117
});

packages/lib/build.ts

Lines changed: 59 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,61 @@
1-
const pkg = require("./package.json");
2-
const esbuild = require("esbuild");
1+
import { exec } from 'child_process';
2+
import { build } from 'esbuild';
3+
import { rmSync } from 'fs';
4+
import { promisify } from 'util';
5+
import packageJson from './package.json';
36

4-
esbuild.build({
5-
entryPoints: ["src/index.ts"],
6-
outfile: "dist/styled-off-canvas.cjs.js",
7-
bundle: true,
8-
format: "cjs",
9-
minify: true,
10-
external: [...Object.keys(pkg.devDependencies)],
11-
});
12-
13-
esbuild.build({
14-
entryPoints: ["src/index.ts"],
15-
outfile: "dist/styled-off-canvas.esm.js",
7+
const execAsync = promisify(exec);
8+
9+
// Clean dist directory
10+
console.log('🧹 Cleaning dist directory...');
11+
rmSync('dist', { recursive: true, force: true });
12+
13+
const peerDependencies = Object.keys(packageJson.peerDependencies || {});
14+
const external = [
15+
...peerDependencies,
16+
'react/jsx-runtime',
17+
];
18+
19+
const sharedConfig = {
20+
entryPoints: ['src/index.ts'],
1621
bundle: true,
17-
format: "esm",
18-
minify: true,
19-
external: [...Object.keys(pkg.devDependencies)],
20-
});
22+
minify: false,
23+
sourcemap: true,
24+
external,
25+
platform: 'neutral' as const,
26+
target: ['es2016', 'node18'],
27+
};
28+
29+
async function buildPackage() {
30+
try {
31+
// Build CommonJS
32+
console.log('📦 Building CommonJS...');
33+
await build({
34+
...sharedConfig,
35+
format: 'cjs',
36+
outfile: 'dist/styled-off-canvas.cjs.js',
37+
});
38+
console.log('✅ CommonJS build complete');
39+
40+
// Build ESM
41+
console.log('📦 Building ES Module...');
42+
await build({
43+
...sharedConfig,
44+
format: 'esm',
45+
outfile: 'dist/styled-off-canvas.esm.js',
46+
});
47+
console.log('✅ ES Module build complete');
48+
49+
// Generate TypeScript declarations
50+
console.log('📝 Generating TypeScript declarations...');
51+
await execAsync('tsc --project tsconfig.declaration.json --outdir dist');
52+
console.log('✅ TypeScript declarations generated');
53+
54+
console.log('🎉 Build complete! Package is ready for publishing.');
55+
} catch (error) {
56+
console.error('❌ Build failed:', error);
57+
process.exit(1);
58+
}
59+
}
60+
61+
buildPackage();

packages/lib/package.json

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,27 @@
22
"name": "styled-off-canvas",
33
"version": "0.0.0-development",
44
"description": "styled components off-canvas menu",
5-
"main": "src/index.ts",
5+
"type": "module",
6+
"main": "dist/styled-off-canvas.cjs.js",
7+
"module": "dist/styled-off-canvas.esm.js",
8+
"types": "dist/index.d.ts",
9+
"exports": {
10+
".": {
11+
"types": "./dist/index.d.ts",
12+
"import": "./dist/index.js"
13+
}
14+
},
15+
"publishConfig": {
16+
"access": "public"
17+
},
618
"files": [
719
"dist/**"
820
],
9-
"publishConfig": {
10-
"main": "dist/styled-off-canvas.cjs.js",
11-
"module": "dist/styled-off-canvas.esm.js",
12-
"types": "dist/index.d.ts"
13-
},
1421
"scripts": {
1522
"lint": "eslint",
1623
"test": "vitest --coverage",
17-
"build": "ts-node build.ts && tsc --project tsconfig.declaration.json --outdir dist",
18-
"build:package": "esbuild src/index.ts --bundle --platform=node --target=node18 --outdir=dist"
24+
"dev": "tsup src/index.ts --format esm --dts --watch",
25+
"build": "ts-node build.ts"
1926
},
2027
"repository": {
2128
"type": "git",
@@ -58,6 +65,7 @@
5865
"react-dom": "^19.2.4",
5966
"styled-components": "^6.1.6",
6067
"ts-node": "^10.9.2",
68+
"tsup": "^8.5.1",
6169
"typescript": "^5.3.3",
6270
"vitest": "^4.0.18"
6371
}

packages/lib/tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"strict": true,
1111
"skipLibCheck": true,
1212
"declaration": true,
13-
"declarationDir": "dist"
13+
"declarationDir": "dist",
14+
"resolveJsonModule": true
1415
}
1516
}

0 commit comments

Comments
 (0)