समस्या पृष्ठभूमि: मैं किसी पृष्ठ पर कुछ गणित प्रस्तुत करने के लिए katex का उपयोग कर रहा हूं। मैं तब उस पृष्ठ के हिस्से का एक पीडीएफ संस्करण बनाना चाहता हूं, इसलिए मैं एक HTML दस्तावेज़ बनाता हूं जिसमें उस हिस्से को निर्यात किया जाए जो सभी सीएसएस को रेखांकित करता है और इसे रेंडरर को पास करता है। रेंडरर नोड संसाधनों का उपयोग नहीं कर सकता है, इसीलिए सब कुछ इनबिल्ट है। यह फोंट को छोड़कर पूरी तरह से काम करता है।
मैंने url-loader और bas64- इनलाइन-लोडर दोनों की कोशिश की, लेकिन उत्पन्न फोंट इनबिल्ड नहीं हैं। मैंने डिबगर में उत्पन्न सीएसएस का निरीक्षण किया, और पुराने यूआरएल अभी भी हैं, फोंट के लिए कोई डेटा-यूआरएल नहीं है।
यह मेरा वर्तमान webpack.config.js है:
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/.*'
})
]
};
@font-face
स्टेटमेंट्स शामिल हैं, एक नोड मॉड्यूल (katex) के अंदर है। मैं अपनी स्वयं की सीएसएस फाइलों में इनमें से किसी भी फोंट का संदर्भ नहीं देता। जब मैं वेबपैक चलाता हूं तो मैं मक्खी पर यूआरएल को बदलने का एक तरीका ढूंढ रहा हूं। जैसा कि मैं इसे समझता हूं,@font-face
अगर मुझे आपके समाधान का उपयोग करना है तो मुझे katex.css में स्टेटमेंट बदलना होगा ।