Skip to content

Commit 5aba200

Browse files
committed
fix: import Fork Awesome CSS in multiple files; update Vite config for asset handling
1 parent 5595d31 commit 5aba200

File tree

10 files changed

+57
-51
lines changed

10 files changed

+57
-51
lines changed

Diff for: lib/vite-helpers.js

+44-38
Original file line numberDiff line numberDiff line change
@@ -28,53 +28,59 @@ function readManifest () {
2828
}
2929

3030
// Helper function to get asset paths for an entry point
31-
function getViteAssets (entryName) {
32-
const manifestData = readManifest()
33-
const assets = { js: [], css: [] }
34-
const isProduction = process.env.NODE_ENV === 'production'
31+
function getViteAssets(entryName) {
32+
const manifestData = readManifest();
33+
const assets = { js: [], css: [] };
34+
const isProduction = process.env.NODE_ENV === 'production';
3535

3636
if (isProduction) {
37-
const entryKey = `public/js/${entryName}.js` // Assuming entry points are in public/js
38-
const entryChunk = manifestData[entryKey]
37+
const entryKey = `public/js/${entryName}.js`;
38+
const entryChunk = manifestData[entryKey];
3939

4040
if (entryChunk) {
41-
// Add the main entry JS file
42-
if (entryChunk.file) {
43-
assets.js.push(`/build/${entryChunk.file}`)
44-
}
45-
// Add CSS files associated with the entry
46-
if (entryChunk.css) {
47-
entryChunk.css.forEach(cssFile => assets.css.push(`/build/${cssFile}`))
48-
}
49-
// Add JS imports (dynamic imports, vendor chunks) - might need refinement based on actual manifest structure
50-
if (entryChunk.imports) {
51-
entryChunk.imports.forEach(importKey => {
52-
const importChunk = manifestData[importKey]
53-
if (importChunk && importChunk.file && importChunk.file.endsWith('.js')) {
54-
assets.js.push(`/build/${importChunk.file}`)
55-
}
56-
// Also check for CSS associated with imported chunks
57-
if (importChunk && importChunk.css) {
58-
importChunk.css.forEach(cssFile => {
59-
// Avoid duplicates
60-
if (!assets.css.includes(`/build/${cssFile}`)) {
61-
assets.css.push(`/build/${cssFile}`)
62-
}
63-
})
64-
}
65-
})
66-
}
41+
processChunk(entryChunk, manifestData, assets);
6742
} else {
68-
console.warn(`Vite manifest entry not found for: ${entryKey}`)
43+
console.warn(`Vite manifest entry not found for: ${entryKey}`);
6944
}
7045
} else {
71-
// In development, Vite now uses a custom base path
72-
assets.js.push(`/.vite/@vite/client`) // Vite HMR client with custom base
73-
// Request the actual file path relative to the project root with the custom base
74-
assets.js.push(`/.vite/public/js/${entryName}.js`)
46+
assets.js.push(`/.vite/@vite/client`);
47+
assets.js.push(`/.vite/public/js/${entryName}.js`);
7548
}
7649

77-
return assets
50+
return assets;
51+
}
52+
53+
function processChunk(chunk, manifestData, assets) {
54+
if (chunk.file && !assets.js.includes(`/build/${chunk.file}`)) {
55+
assets.js.push(`/build/${chunk.file}`);
56+
}
57+
if (chunk.css) {
58+
chunk.css.forEach(cssFile => {
59+
if (!assets.css.includes(`/build/${cssFile}`)) {
60+
assets.css.push(`/build/${cssFile}`);
61+
}
62+
});
63+
}
64+
if (chunk.imports) {
65+
chunk.imports.forEach(importKey => {
66+
const importChunk = manifestData[importKey];
67+
if (importChunk) {
68+
if (importChunk.file && importChunk.file.endsWith('.js')) {
69+
if (!assets.js.includes(`/build/${importChunk.file}`)) {
70+
assets.js.push(`/build/${importChunk.file}`);
71+
}
72+
}
73+
if (importChunk.css) {
74+
importChunk.css.forEach(cssFile => {
75+
if (!assets.css.includes(`/build/${cssFile}`)) {
76+
assets.css.push(`/build/${cssFile}`);
77+
}
78+
});
79+
}
80+
processChunk(importChunk, manifestData, assets);
81+
}
82+
});
83+
}
7884
}
7985

8086
// Helper to generate HTML tags

Diff for: public/js/cover.js

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import List from 'list.js'
3030
import { unescape as unescapeHTML } from 'lodash'
3131
import 'select2/select2.js'
3232

33+
import 'fork-awesome/css/fork-awesome.min.css'
3334
import 'bootstrap/dist/css/bootstrap.min.css'
3435
import 'select2/select2.css'
3536
import 'select2/select2-bootstrap.css'

Diff for: public/js/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ import appState from './lib/appState'
189189

190190
// Import CSS using aliases
191191
// Font
192+
import 'fork-awesome/css/fork-awesome.min.css'
192193
import '@css/google-font.css'
193194
// Index Styles Pack
194195
import 'bootstrap/dist/css/bootstrap.min.css'

Diff for: public/js/pretty.js

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { preventXSS } from './render'
2222

2323
// Import CSS previously handled by Webpack entry points
2424
// Pretty Styles Pack (assuming non-CDN usage)
25+
import 'fork-awesome/css/fork-awesome.min.css'
2526
import 'bootstrap/dist/css/bootstrap.min.css'
2627
import 'ionicons/css/ionicons.min.css'
2728
import 'leaflet/dist/leaflet.css'

Diff for: public/js/slide.js

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import 'ionicons/css/ionicons.min.css'
1414
import 'leaflet/dist/leaflet.css'
1515
// Slide Styles
1616

17+
import 'fork-awesome/css/fork-awesome.min.css'
1718
import '@vendor/bootstrap/tooltip.min.css'
1819
import '@css/github-extract.css'
1920
import '@css/mermaid.css'

Diff for: public/views/codimd/head.ejs

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
<% } else { %>
2121
<link rel="stylesheet" href='<%- serverURL %>/build/emojify.js/dist/css/basic/emojify.min.css'>
2222
<link rel="stylesheet" href='<%- serverURL %>/css/font.css'>
23-
<link rel="stylesheet" href='<%- serverURL %>/build/fork-awesome/css/fork-awesome.min.css'>
2423
<!-- <%- include('../build/index-pack-header') %> -->
2524
<% } %>
2625
<link rel="stylesheet" href='<%- serverURL %>/markdown-lint/css/lint.css'>

Diff for: public/views/index/head.ejs

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
<%- include('../shared/polyfill') %>
2020
<% } else { %>
2121
<%# Removed direct font link - Vite will handle CSS %>
22-
<link rel="stylesheet" href='<%- serverURL %>/build/fork-awesome/css/fork-awesome.min.css'>
2322
<%# Old webpack includes removed %>
2423
<% } %>
2524

Diff for: public/views/pretty.ejs

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
<% } else { %>
3232
<link rel="stylesheet" href='<%- serverURL %>/build/emojify.js/dist/css/basic/emojify.min.css'>
3333
<%# Removed direct font link - Vite will handle CSS %>
34-
<link rel="stylesheet" href='<%- serverURL %>/build/fork-awesome/css/fork-awesome.min.css'>
3534
<%# Old webpack includes removed %>
3635
<% } %>
3736

Diff for: public/views/slide.ejs

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
<link rel="stylesheet" href="<%- serverURL %>/build/reveal.js/css/reveal.css">
2828
<link rel="stylesheet" href='<%- serverURL %>/build/emojify.js/dist/css/basic/emojify.min.css'>
2929
<%# Removed direct font link - Vite will handle CSS %>
30-
<link rel="stylesheet" href='<%- serverURL %>/build/fork-awesome/css/fork-awesome.min.css'>
3130
<%# Old webpack includes removed %>
3231
<% } %>
3332

Diff for: vite.config.mjs

+9-9
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,14 @@ export default defineConfig({
7474
src: path.join(__dirname, 'node_modules/leaflet/dist'),
7575
dest: path.join(__dirname, 'public/build/leaflet')
7676
},
77-
{
78-
src: path.join(__dirname, 'node_modules/fork-awesome/fonts'),
79-
dest: path.join(__dirname, 'public/build/fork-awesome/fonts')
80-
},
81-
{
82-
src: path.join(__dirname, 'node_modules/fork-awesome/css'),
83-
dest: path.join(__dirname, 'public/build/fork-awesome/css')
84-
}
77+
// {
78+
// src: path.join(__dirname, 'node_modules/fork-awesome/fonts/*'),
79+
// dest: path.join(__dirname, 'public/build/fork-awesome/fonts')
80+
// },
81+
// {
82+
// src: path.join(__dirname, 'node_modules/fork-awesome/css/*'),
83+
// dest: path.join(__dirname, 'public/build/fork-awesome/css')
84+
// }
8585
],
8686
hook: 'writeBundle' // Run copy after bundle is written
8787
}),
@@ -151,7 +151,7 @@ export default defineConfig({
151151
// ot: {} // Define ot as empty object for browser compatibility
152152
},
153153
root: __dirname,
154-
base: '/.vite/', // Updated to match our custom base path in app.js
154+
base: process.env.NODE_ENV === 'production' ? '/build' : '/.vite/',
155155
publicDir: false, // Let Vite handle all assets through middleware
156156
appType: 'custom',
157157
optimizeDeps: {

0 commit comments

Comments
 (0)