refactor: convert JavaScript files to TypeScript
This commit is contained in:
93
astro.config.ts
Normal file
93
astro.config.ts
Normal file
@@ -0,0 +1,93 @@
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
import { defineConfig } from 'astro/config';
|
||||
|
||||
import sitemap from '@astrojs/sitemap';
|
||||
import tailwind from '@astrojs/tailwind';
|
||||
import mdx from '@astrojs/mdx';
|
||||
import partytown from '@astrojs/partytown';
|
||||
import icon from 'astro-icon';
|
||||
import compress from 'astro-compress';
|
||||
|
||||
import astrowind from './vendor/integration';
|
||||
|
||||
import {
|
||||
readingTimeRemarkPlugin,
|
||||
responsiveTablesRehypePlugin,
|
||||
lazyImagesRehypePlugin,
|
||||
} from './src/utils/frontmatter';
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
const hasExternalScripts = false;
|
||||
const whenExternalScripts = (items = []) =>
|
||||
hasExternalScripts ? (Array.isArray(items) ? items.map((item) => item()) : [items()]) : [];
|
||||
|
||||
export default defineConfig({
|
||||
output: 'static',
|
||||
|
||||
integrations: [
|
||||
tailwind({
|
||||
applyBaseStyles: false,
|
||||
}),
|
||||
sitemap(),
|
||||
mdx(),
|
||||
icon({
|
||||
include: {
|
||||
tabler: ['*'],
|
||||
'flat-color-icons': [
|
||||
'template',
|
||||
'gallery',
|
||||
'approval',
|
||||
'document',
|
||||
'advertising',
|
||||
'currency-exchange',
|
||||
'voice-presentation',
|
||||
'business-contact',
|
||||
'database',
|
||||
],
|
||||
},
|
||||
}),
|
||||
|
||||
...whenExternalScripts(() =>
|
||||
partytown({
|
||||
config: { forward: ['dataLayer.push'] },
|
||||
})
|
||||
),
|
||||
|
||||
compress({
|
||||
CSS: true,
|
||||
HTML: {
|
||||
'html-minifier-terser': {
|
||||
removeAttributeQuotes: false,
|
||||
},
|
||||
},
|
||||
Image: false,
|
||||
JavaScript: true,
|
||||
SVG: false,
|
||||
Logger: 1,
|
||||
}),
|
||||
|
||||
astrowind({
|
||||
config: './src/config.yaml',
|
||||
}),
|
||||
],
|
||||
|
||||
image: {
|
||||
domains: ['cdn.pixabay.com'],
|
||||
},
|
||||
|
||||
markdown: {
|
||||
remarkPlugins: [readingTimeRemarkPlugin],
|
||||
rehypePlugins: [responsiveTablesRehypePlugin, lazyImagesRehypePlugin],
|
||||
},
|
||||
|
||||
vite: {
|
||||
resolve: {
|
||||
alias: {
|
||||
'~': path.resolve(__dirname, './src'),
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
Reference in New Issue
Block a user