Latar belakang masalah: Saya menggunakan katex untuk membuat beberapa matematika pada halaman. Saya kemudian ingin membuat versi PDF dari bagian halaman itu, jadi saya membuat dokumen HTML yang berisi bagian yang akan diekspor yang menyatukan semua CSS dan meneruskannya ke renderer. Penyaji tidak dapat mengakses sumber daya simpul, itu sebabnya semuanya diuraikan. Ini berfungsi dengan baik, kecuali untuk font.
Saya mencoba baik url-loader dan bas64-inline-loader, tetapi font yang dihasilkan tidak inline. Saya memeriksa CSS yang dihasilkan di debugger, dan URL lama masih ada, tidak ada data-URL untuk font.
Ini webpack.config.js saya saat ini:
const path = require('path');
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'development',
entry: {
"editor": './src/editor.js',
"editor.worker": 'monaco-editor/esm/vs/editor/editor.worker.js',
"json.worker": 'monaco-editor/esm/vs/language/json/json.worker',
"css.worker": 'monaco-editor/esm/vs/language/css/css.worker',
"html.worker": 'monaco-editor/esm/vs/language/html/html.worker',
"ts.worker": 'monaco-editor/esm/vs/language/typescript/ts.worker',
},
output: {
globalObject: 'self',
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.(woff|woff2|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
use: ['url-loader']
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
filename: 'editor_text.html',
template: 'src/editor_text.html'
}),
new HtmlWebpackPlugin({
filename: 'editor_markdown.html',
template: 'src/editor_markdown.html',
inlineSource: '/katex/.*'
})
]
};
sumber
@font-face
pernyataan ada di dalam modul simpul (katex). Saya tidak mereferensikan font-font ini dalam file css saya sendiri. Saya mencari cara untuk mengganti URL on the fly saat webpack berjalan. Seperti yang saya mengerti, saya harus mengubah@font-face
pernyataan di katex.css jika saya ingin menggunakan solusi Anda.