Skip to content

Commit 4843413

Browse files
committed
initial attempt at using tsup to build tailwind
1 parent 48ae17d commit 4843413

13 files changed

+1296
-545
lines changed

package.json

+10-1
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,14 @@
3030
"vite": "5.4.6",
3131
"vitest": "2.0.5"
3232
},
33-
"packageManager": "[email protected]+sha512.6e2baf77d06b9362294152c851c4f278ede37ab1eba3a55fda317a4a17b209f4dbb973fb250a77abc463a341fcb1f17f17cfa24091c4eb319cda0d9b84278387"
33+
"packageManager": "[email protected]+sha512.6e2baf77d06b9362294152c851c4f278ede37ab1eba3a55fda317a4a17b209f4dbb973fb250a77abc463a341fcb1f17f17cfa24091c4eb319cda0d9b84278387",
34+
"pnpm": {
35+
"patchedDependencies": {
36+
37+
38+
39+
40+
41+
}
42+
}
3443
}

packages/tailwind/integrations/nextjs/package-lock.json

+16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/tailwind/integrations/vite/package-lock.json

+16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/tailwind/package.json

+5-6
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
},
2424
"license": "MIT",
2525
"scripts": {
26-
"build": "tsc && NODE_ENV=production vite build --mode production && node ./copy-tailwind-types.mjs",
27-
"dev": "vite build --watch",
26+
"build": "tsup-node",
27+
"dev": "tsup-node --watch",
2828
"clean": "rm -rf dist",
2929
"lint": "eslint .",
3030
"test:watch": "vitest",
@@ -56,7 +56,6 @@
5656
"@react-email/render": "workspace:*",
5757
"@responsive-email/react-email": "0.0.3",
5858
"@types/shelljs": "0.8.15",
59-
"@vitejs/plugin-react": "4.2.1",
6059
"eslint-config-custom": "workspace:*",
6160
"eslint-plugin-regex": "1.10.0",
6261
"postcss": "8.4.40",
@@ -67,12 +66,12 @@
6766
"tsconfig": "workspace:*",
6867
"tsup": "7.2.0",
6968
"typescript": "5.1.6",
70-
"vite": "5.2.14",
71-
"vite-plugin-dts": "4.2.4",
72-
"vitest": "1.1.1",
7369
"yalc": "1.0.0-pre.53"
7470
},
7571
"publishConfig": {
7672
"access": "public"
73+
},
74+
"dependencies": {
75+
"uuid": "11.0.3"
7776
}
7877
}

packages/tailwind/tsconfig.json

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"include": ["."],
55
"exclude": ["dist", "build", "node_modules", "integrations/vite", "integrations/nextjs"],
66
"compilerOptions": {
7+
"resolveJsonModule": true,
78
"strict": true,
89
"noEmit": true
910
}

packages/tailwind/tsup.config.ts

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { defineConfig } from "tsup";
2+
3+
export default defineConfig({
4+
dts: true,
5+
target: ["es2020"],
6+
entry: ["./src/index.ts"],
7+
outDir: "./dist",
8+
treeshake: true,
9+
noExternal: [
10+
/tailwindcss\/.*/,
11+
/postcss\/.*/,
12+
"dlv",
13+
"didyoumean",
14+
"@alloc/quick-lru",
15+
"postcss-selector-parser",
16+
"postcss-js",
17+
"postcss-nested",
18+
"cssesc",
19+
"camelcase-css"
20+
],
21+
format: ["esm", "cjs"],
22+
});

packages/tailwind/vite.config.ts

-33
This file was deleted.

patches/[email protected]

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
diff --git a/async.js b/async.js
2+
index 4c2f3c6c21e0b57be1fa5a751374f058f8234714..9026394d68a4accdcb3cee64430fc3fa03bbfe66 100644
3+
--- a/async.js
4+
+++ b/async.js
5+
@@ -1,10 +1,10 @@
6+
-let postcss = require('postcss')
7+
+let Processor = require('postcss/lib/processor')
8+
9+
let processResult = require('./process-result')
10+
let parse = require('./parser')
11+
12+
module.exports = function async(plugins) {
13+
- let processor = postcss(plugins)
14+
+ let processor = new Processor(plugins)
15+
return async input => {
16+
let result = await processor.process(input, {
17+
parser: parse,
18+
diff --git a/parser.js b/parser.js
19+
index 17ae264bb9f4461ebf9ce6466e9606c4cf5e66e3..fb36fbbf3a3931334a418ee9e66b2cbedfa2464d 100644
20+
--- a/parser.js
21+
+++ b/parser.js
22+
@@ -1,4 +1,7 @@
23+
-let postcss = require('postcss')
24+
+let Declaration = require('postcss/lib/declaration');
25+
+let AtRule = require('postcss/lib/at-rule');
26+
+let Rule = require('postcss/lib/rule');
27+
+let Root = require('postcss/lib/root');
28+
29+
let IMPORTANT = /\s*!important\s*$/i
30+
31+
@@ -53,14 +56,14 @@ function decl(parent, name, value) {
32+
33+
if (IMPORTANT.test(value)) {
34+
value = value.replace(IMPORTANT, '')
35+
- parent.push(postcss.decl({ prop: name, value, important: true }))
36+
+ parent.push(new Declaration({ prop: name, value, important: true }))
37+
} else {
38+
- parent.push(postcss.decl({ prop: name, value }))
39+
+ parent.push(new Declaration({ prop: name, value }))
40+
}
41+
}
42+
43+
function atRule(parent, parts, value) {
44+
- let node = postcss.atRule({ name: parts[1], params: parts[3] || '' })
45+
+ let node = new AtRule({ name: parts[1], params: parts[3] || '' })
46+
if (typeof value === 'object') {
47+
node.nodes = []
48+
parse(value, node)
49+
@@ -88,7 +91,7 @@ function parse(obj, parent) {
50+
decl(parent, name, i)
51+
}
52+
} else if (typeof value === 'object') {
53+
- node = postcss.rule({ selector: name })
54+
+ node = new Rule({ selector: name })
55+
parse(value, node)
56+
parent.push(node)
57+
} else {
58+
@@ -98,7 +101,7 @@ function parse(obj, parent) {
59+
}
60+
61+
module.exports = function (obj) {
62+
- let root = postcss.root()
63+
+ let root = new Root()
64+
parse(obj, root)
65+
return root
66+
}
67+
diff --git a/sync.js b/sync.js
68+
index 745bd278cc7bb65aac13c1863244bad29282557d..3ea41890df69770f2467363355f87497df21fcc3 100644
69+
--- a/sync.js
70+
+++ b/sync.js
71+
@@ -1,10 +1,10 @@
72+
-let postcss = require('postcss')
73+
+let Processor = require('postcss/lib/processor')
74+
75+
let processResult = require('./process-result')
76+
let parse = require('./parser')
77+
78+
module.exports = function (plugins) {
79+
- let processor = postcss(plugins)
80+
+ let processor = new Processor(plugins)
81+
return input => {
82+
let result = processor.process(input, { parser: parse, from: undefined })
83+
return processResult(result)

patches/[email protected]

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
diff --git a/index.js b/index.js
2+
index fe8618eb1355a0c3341ad7ecb49fd999d95ee229..97f7550a5008ab48de6ea4d1575c1ed93aa54b94 100644
3+
--- a/index.js
4+
+++ b/index.js
5+
@@ -1,4 +1,5 @@
6+
-const { Rule, AtRule } = require('postcss')
7+
+const Rule = require('postcss/lib/rule')
8+
+const AtRule = require('postcss/lib/at-rule')
9+
let parser = require('postcss-selector-parser')
10+
11+
/**

0 commit comments

Comments
 (0)