Files
CyyWordpress/vite.config.ts
T
2026-04-29 19:04:20 +08:00

61 lines
1.4 KiB
TypeScript

import { defineConfig } from 'vite';
import { resolve } from 'path';
/**
* Vite config for CyyWordpress theme.
*
* Outputs pre-hashed assets to assets/js/ and assets/css/.
* Run `npm run dev` → HMR dev server on :3000
* Run `npm run build` → production bundles with contenthash
*/
export default defineConfig( ( { command } ) => ( {
root: resolve( __dirname, 'src' ),
resolve: {
alias: {
'@scss': resolve( __dirname, 'scss' ),
'@': resolve( __dirname, 'src' ),
},
},
css: {
preprocessorOptions: {
scss: {
// Expose abstracts to every SCSS file without manual imports.
additionalData: `@use "@scss/abstracts/variables" as *;
@use "@scss/abstracts/mixins" as *;
`,
},
},
},
build: {
outDir: resolve( __dirname, 'assets' ),
emptyOutDir: false,
manifest: true,
rollupOptions: {
input: {
main: resolve( __dirname, 'src/ts/main.ts' ),
admin: resolve( __dirname, 'src/admin/customizer.ts' ),
},
output: {
entryFileNames: 'js/[name].[hash].js',
chunkFileNames: 'js/[name].[hash].js',
assetFileNames: ( assetInfo ) => {
if ( assetInfo.name?.endsWith( '.css' ) ) {
return 'css/[name].[hash][extname]';
}
return 'img/[name].[hash][extname]';
},
},
},
},
server: {
port: 3000,
// Proxy WordPress requests through the local server.
// Point WP_HOME to http://localhost:3000 in wp-config.php during dev.
cors: true,
},
} ) );