@@ -35,15 +35,26 @@ export default defineNuxtModule<ModuleOptions>({
35
35
36
36
const privateConfig = nuxt . options . runtimeConfig . designTokens
37
37
38
- // `.nuxt/theme ` resolver
38
+ // `.nuxt/tokens ` resolver
39
39
const tokensDir = withTrailingSlash ( nuxt . options . buildDir + '/tokens' )
40
40
41
- // Init directory
41
+ // Set srcDir for external imports
42
+ globalThis . __nuxtDesignTokensBuildDir__ = tokensDir
43
+
44
+ // Tokens dir resolver
45
+ const { resolve : resolveTokensDir } = createResolver ( tokensDir )
46
+ privateConfig . tokensDir = tokensDir
47
+
48
+ // `runtime/` resolver
49
+ const { resolve : resolveRuntime } = createResolver ( import . meta. url )
50
+ const resolveRuntimeModule = ( path : string ) => resolveModule ( path , { paths : resolveRuntime ( './runtime' ) } )
51
+
52
+ // Init directory on first module run
42
53
await createTokensDir ( tokensDir )
43
54
44
- // Refresh configuration
55
+ // Refresh configurations
45
56
const refreshTokens = async ( nitro ?: Nitro ) => {
46
- // Resolve theme configuration from every layer
57
+ // Resolve tokens.config configuration from every layer
47
58
const { tokensFilePaths, tokens } = resolveTokens ( layers as NuxtLayer [ ] )
48
59
49
60
if ( moduleOptions . tokens ) { privateConfig . tokensFilePaths = tokensFilePaths }
@@ -55,26 +66,8 @@ export default defineNuxtModule<ModuleOptions>({
55
66
return { tokens, tokensFilePaths }
56
67
}
57
68
58
- // Set srcDir for external imports
59
- globalThis . __nuxtDesignTokensBuildDir__ = tokensDir
60
-
61
- // Theme dir resolver
62
- const { resolve : resolveTokensDir } = createResolver ( tokensDir )
63
- privateConfig . tokensDir = tokensDir
64
-
65
- // Initial theme resolving
66
- const { tokens } = await refreshTokens ( )
67
-
68
- // `runtime/` resolver
69
- const { resolve : resolveRuntime } = createResolver ( import . meta. url )
70
- const resolveRuntimeModule = ( path : string ) => resolveModule ( path , { paths : resolveRuntime ( './runtime' ) } )
71
-
72
- // Transpile
73
- nuxt . options . build . transpile = nuxt . options . build . transpile || [ ]
74
- nuxt . options . build . transpile . push ( resolveRuntime ( './runtime' ) )
75
-
76
69
// Main function to build tokens (module-level)
77
- const buildTokens = async ( nitro ) => {
70
+ const buildTokens = async ( nitro : Nitro ) => {
78
71
try {
79
72
const start = performance . now ( )
80
73
const tokens = await nitro . storage . getItem ( 'cache:design-tokens:tokens.json' ) as NuxtDesignTokens
@@ -88,6 +81,13 @@ export default defineNuxtModule<ModuleOptions>({
88
81
}
89
82
}
90
83
84
+ // Initial tokens resolving
85
+ const { tokens } = await refreshTokens ( )
86
+
87
+ // Transpile
88
+ nuxt . options . build . transpile = nuxt . options . build . transpile || [ ]
89
+ nuxt . options . build . transpile . push ( resolveRuntime ( './runtime' ) )
90
+
91
91
// Apply aliases
92
92
nuxt . options . alias = nuxt . options . alias || { }
93
93
nuxt . options . alias [ '#design-tokens' ] = resolveTokensDir ( 'index' )
@@ -159,6 +159,7 @@ export default defineNuxtModule<ModuleOptions>({
159
159
/**
160
160
* Runtime
161
161
*/
162
+
162
163
addPlugin ( {
163
164
src : resolveRuntimeModule ( './plugins/tokens' )
164
165
} )
@@ -168,12 +169,10 @@ export default defineNuxtModule<ModuleOptions>({
168
169
as : 'useTokens'
169
170
} )
170
171
171
- // Create initial build targets for tokens
172
- await generateTokens ( tokens , tokensDir , true )
173
-
174
172
/**
175
- * Build environments
173
+ * Dev
176
174
*/
175
+
177
176
if ( nuxt . options . dev ) {
178
177
nuxt . hook ( 'nitro:init' , ( nitro ) => {
179
178
nuxt . hook ( 'vite:serverCreated' , ( viteServer : ViteDevServer ) => {
@@ -196,9 +195,12 @@ export default defineNuxtModule<ModuleOptions>({
196
195
} )
197
196
} )
198
197
} )
199
- } else {
200
- // Production builds
201
- nuxt . hook ( 'build:before' , async ( ) => await generateTokens ( tokens , tokensDir , true ) )
202
198
}
199
+
200
+ /**
201
+ * Prod
202
+ */
203
+
204
+ nuxt . hook ( 'build:before' , async ( ) => await generateTokens ( tokens , tokensDir , true ) )
203
205
}
204
206
} )
0 commit comments