@rebuildjs/tailwindcss 0.10.60 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rebuildjs/tailwindcss",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Tailwindcss integration with rebuildjs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tailwindcss",
|
|
@@ -53,7 +53,8 @@
|
|
|
53
53
|
"esbuild": "^0.27.3",
|
|
54
54
|
"postcss": "latest",
|
|
55
55
|
"rebuildjs": "*",
|
|
56
|
-
"tailwindcss": "^
|
|
56
|
+
"@tailwindcss/postcss": "^4.2.1",
|
|
57
|
+
"tailwindcss": "^4.2.1"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
60
|
"c8": "^11.0.0",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Plugin } from 'esbuild'
|
|
2
2
|
import type { AcceptedPlugin } from 'postcss'
|
|
3
3
|
import type { ctx__be_T, ctx__get_T, ctx__set_T, sig_T } from 'rebuildjs/server'
|
|
4
|
-
import type { Config } from 'tailwindcss'
|
|
5
4
|
export declare const rebuild_tailwind_plugin__build_id$_:ctx__be_T<sig_T<string|undefined>, 'app'>
|
|
6
5
|
export declare const rebuild_tailwind_plugin__build_id_:ctx__get_T<string|undefined, 'app'>
|
|
7
6
|
export declare const rebuild_tailwind_plugin__build_id__set:ctx__set_T<string|undefined, 'app'>
|
|
@@ -11,5 +10,4 @@ export declare function rebuildjs_tailwind__ready__wait(timeout?:number):Promise
|
|
|
11
10
|
export declare function rebuild_tailwind_plugin_(config?:rebuild_tailwind_plugin__config_T):Plugin
|
|
12
11
|
export type rebuild_tailwind_plugin__config_T = {
|
|
13
12
|
postcss_plugin_a1_?:(tailwindcss_plugin:AcceptedPlugin)=>AcceptedPlugin[]
|
|
14
|
-
tailwindcss_config?:Config
|
|
15
13
|
}
|
|
@@ -19,7 +19,7 @@ import postcss from 'postcss'
|
|
|
19
19
|
import {
|
|
20
20
|
app_ctx,
|
|
21
21
|
browser__metafile_,
|
|
22
|
-
|
|
22
|
+
browser__metafile__persist,
|
|
23
23
|
browser__output_,
|
|
24
24
|
browser__output__relative_path_,
|
|
25
25
|
build_id_,
|
|
@@ -30,12 +30,12 @@ import {
|
|
|
30
30
|
rebuildjs__esbuild__done__wait,
|
|
31
31
|
rebuildjs__ready__add,
|
|
32
32
|
server__metafile_,
|
|
33
|
-
|
|
33
|
+
server__metafile__persist,
|
|
34
34
|
server__output_,
|
|
35
35
|
server__output__relative_path_,
|
|
36
36
|
server__output__relative_path_M_middleware_ctx_
|
|
37
37
|
} from 'rebuildjs/server'
|
|
38
|
-
import
|
|
38
|
+
import tailwindcss from '@tailwindcss/postcss'
|
|
39
39
|
export const [
|
|
40
40
|
rebuild_tailwind_plugin__build_id$_,
|
|
41
41
|
rebuild_tailwind_plugin__build_id_,
|
|
@@ -67,6 +67,7 @@ export function rebuildjs_tailwind__ready__wait(timeout) {
|
|
|
67
67
|
* @private
|
|
68
68
|
*/
|
|
69
69
|
export function rebuild_tailwind_plugin_(config) {
|
|
70
|
+
const tailwindcss_plugin = tailwindcss()
|
|
70
71
|
return { name: 'rebuild_tailwind_plugin', setup: setup_() }
|
|
71
72
|
function setup_() {
|
|
72
73
|
rebuildjs__ready__add(rebuildjs_tailwind__ready$_)
|
|
@@ -124,15 +125,14 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
124
125
|
Promise.all(server_output__process_promise_a1),
|
|
125
126
|
Promise.all(browser_output__process_promise_a1)
|
|
126
127
|
])
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
await cmd(Promise.all(update_promise_a1))
|
|
128
|
+
if (
|
|
129
|
+
server__metafile_updated_a1.some($=>$)
|
|
130
|
+
|| browser__metafile_updated_a1.some($=>$)
|
|
131
|
+
) {
|
|
132
|
+
await Promise.all([
|
|
133
|
+
server__metafile__persist(),
|
|
134
|
+
browser__metafile__persist(),
|
|
135
|
+
])
|
|
136
136
|
}
|
|
137
137
|
rebuild_tailwind_plugin__build_id__set(app_ctx, build_id)
|
|
138
138
|
} catch (err) {
|
|
@@ -151,6 +151,11 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
151
151
|
let metafile_updated = false
|
|
152
152
|
const cssBundle = output?.cssBundle
|
|
153
153
|
if (!cssBundle) return metafile_updated
|
|
154
|
+
const output_hash =
|
|
155
|
+
basename(output__relative_path, '.js')
|
|
156
|
+
.split('-')
|
|
157
|
+
.slice(-1)[0]
|
|
158
|
+
if (cssBundle.includes('_' + output_hash)) return metafile_updated
|
|
154
159
|
const esbuild_cssBundle = output.esbuild_cssBundle ?? cssBundle
|
|
155
160
|
const esbuild_cssBundle_path = join(cwd_(app_ctx), esbuild_cssBundle)
|
|
156
161
|
await cmd(file_exists__waitfor(
|
|
@@ -159,25 +164,18 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
159
164
|
()=>cmd(sleep(0))))
|
|
160
165
|
const esbuild_cssBundle_map_path = esbuild_cssBundle_path + '.map'
|
|
161
166
|
const esbuild_cssBundle_map_exists = await cmd(file_exists_(esbuild_cssBundle_map_path))
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
...config?.tailwindcss_config,
|
|
168
|
-
content: [
|
|
169
|
-
...output.cssBundle_content.map(content__relative_path=>
|
|
170
|
-
join(cwd_(app_ctx), content__relative_path)),
|
|
171
|
-
...(config?.content ?? [])
|
|
172
|
-
]
|
|
173
|
-
})
|
|
167
|
+
let esbuild_css = (await readFile(esbuild_cssBundle_path)).toString()
|
|
168
|
+
esbuild_css = esbuild_css
|
|
169
|
+
.replace(/@tailwind\s+base\s*;/g, '@import "tailwindcss";')
|
|
170
|
+
.replace(/@tailwind\s+components\s*;/g, '')
|
|
171
|
+
.replace(/@tailwind\s+utilities\s*;/g, '')
|
|
174
172
|
const result = await file_exists__waitfor(
|
|
175
173
|
async ()=>cmd(
|
|
176
174
|
postcss(
|
|
177
|
-
config?.postcss_plugin_a1_?.(
|
|
178
|
-
?? [
|
|
175
|
+
config?.postcss_plugin_a1_?.(tailwindcss_plugin)
|
|
176
|
+
?? [tailwindcss_plugin]
|
|
179
177
|
).process(
|
|
180
|
-
|
|
178
|
+
esbuild_css,
|
|
181
179
|
{
|
|
182
180
|
from: esbuild_cssBundle_path,
|
|
183
181
|
to: join(cwd_(app_ctx), cssBundle),
|
|
@@ -211,7 +209,9 @@ export function rebuild_tailwind_plugin_(config) {
|
|
|
211
209
|
output.cssBundle = annotated_cssBundle
|
|
212
210
|
if (metafile_updated) {
|
|
213
211
|
metafile.outputs[annotated_cssBundle] = metafile.outputs[cssBundle]
|
|
214
|
-
|
|
212
|
+
if (map_json) {
|
|
213
|
+
metafile.outputs[annotated_cssBundle + '.map'] = metafile.outputs[cssBundle + '.map']
|
|
214
|
+
}
|
|
215
215
|
}
|
|
216
216
|
return metafile_updated
|
|
217
217
|
}
|
|
@@ -81,7 +81,7 @@ test('rebuild_tailwind_plugin_|default', async ()=>{
|
|
|
81
81
|
equal(rebuildjs__ready__add__ready$__a1_(app_ctx), [rebuildjs_tailwind__ready$_])
|
|
82
82
|
server__build_context = await rebuildjs_server__build({ plugins: [rebuild_tailwind_plugin] })
|
|
83
83
|
browser__build_context = await rebuildjs_browser__build({ plugins: [rebuild_tailwind_plugin] })
|
|
84
|
-
await rebuildjs__ready__wait()
|
|
84
|
+
await rebuildjs__ready__wait(30_000)
|
|
85
85
|
const server__metafile = server__metafile_(app_ctx)!
|
|
86
86
|
const server__output__relative_path =
|
|
87
87
|
Object.keys(server__metafile.outputs)
|
|
@@ -115,16 +115,16 @@ test('rebuild_tailwind_plugin_|default', async ()=>{
|
|
|
115
115
|
equal(cssBundle_text.includes('.text-green-500'), true)
|
|
116
116
|
equal(cssBundle_text.includes('.font-bold'), true)
|
|
117
117
|
equal(cssBundle_text.includes('.text-red'), false)
|
|
118
|
-
equal(cssBundle_text.includes('.
|
|
118
|
+
equal(cssBundle_text.includes('.xyznonexistent'), false)
|
|
119
119
|
equal(esbuild_cssBundle_text.includes('@tailwind base;'), true)
|
|
120
120
|
equal(esbuild_cssBundle_text.includes('@tailwind components;'), true)
|
|
121
121
|
equal(esbuild_cssBundle_text.includes('@tailwind utilities;'), true)
|
|
122
122
|
equal(esbuild_cssBundle_text.includes('.text-green-500'), false)
|
|
123
123
|
equal(esbuild_cssBundle_text.includes('.font-bold'), false)
|
|
124
124
|
equal(esbuild_cssBundle_text.includes('.text-red'), false)
|
|
125
|
-
equal(esbuild_cssBundle_text.includes('.
|
|
125
|
+
equal(esbuild_cssBundle_text.includes('.xyznonexistent'), false)
|
|
126
126
|
} finally {
|
|
127
|
-
await rebuildjs__ready__wait()
|
|
127
|
+
await rebuildjs__ready__wait(30_000)
|
|
128
128
|
server__build_context?.dispose?.()
|
|
129
129
|
browser__build_context?.dispose?.()
|
|
130
130
|
}
|
|
@@ -137,15 +137,11 @@ test('rebuild_tailwind_plugin_|tailwindcss_config', async ()=>{
|
|
|
137
137
|
let server__build_context:BuildContext|undefined = undefined
|
|
138
138
|
let browser__build_context:BuildContext|undefined = undefined
|
|
139
139
|
try {
|
|
140
|
-
const rebuild_tailwind_plugin = rebuild_tailwind_plugin_(
|
|
141
|
-
tailwindcss_config: {
|
|
142
|
-
content: []
|
|
143
|
-
}
|
|
144
|
-
})
|
|
140
|
+
const rebuild_tailwind_plugin = rebuild_tailwind_plugin_()
|
|
145
141
|
equal(rebuildjs__ready__add__ready$__a1_(app_ctx), [rebuildjs_tailwind__ready$_])
|
|
146
142
|
server__build_context = await rebuildjs_server__build({ plugins: [rebuild_tailwind_plugin] })
|
|
147
143
|
browser__build_context = await rebuildjs_browser__build({ plugins: [rebuild_tailwind_plugin] })
|
|
148
|
-
await rebuildjs__ready__wait()
|
|
144
|
+
await rebuildjs__ready__wait(30_000)
|
|
149
145
|
const server__metafile = server__metafile_(app_ctx)!
|
|
150
146
|
const server__output__relative_path =
|
|
151
147
|
Object.keys(server__metafile.outputs)
|
|
@@ -179,16 +175,16 @@ test('rebuild_tailwind_plugin_|tailwindcss_config', async ()=>{
|
|
|
179
175
|
equal(cssBundle_text.includes('.text-green-500'), true)
|
|
180
176
|
equal(cssBundle_text.includes('.font-bold'), true)
|
|
181
177
|
equal(cssBundle_text.includes('.text-red'), false)
|
|
182
|
-
equal(cssBundle_text.includes('.
|
|
178
|
+
equal(cssBundle_text.includes('.xyznonexistent'), false)
|
|
183
179
|
equal(esbuild_cssBundle_text.includes('@tailwind base;'), true)
|
|
184
180
|
equal(esbuild_cssBundle_text.includes('@tailwind components;'), true)
|
|
185
181
|
equal(esbuild_cssBundle_text.includes('@tailwind utilities;'), true)
|
|
186
182
|
equal(esbuild_cssBundle_text.includes('.text-green-500'), false)
|
|
187
183
|
equal(esbuild_cssBundle_text.includes('.font-bold'), false)
|
|
188
184
|
equal(esbuild_cssBundle_text.includes('.text-red'), false)
|
|
189
|
-
equal(esbuild_cssBundle_text.includes('.
|
|
185
|
+
equal(esbuild_cssBundle_text.includes('.xyznonexistent'), false)
|
|
190
186
|
} finally {
|
|
191
|
-
await rebuildjs__ready__wait()
|
|
187
|
+
await rebuildjs__ready__wait(30_000)
|
|
192
188
|
server__build_context?.dispose?.()
|
|
193
189
|
browser__build_context?.dispose?.()
|
|
194
190
|
}
|