সমস্যার পটভূমি: আমি কোনও পৃষ্ঠায় কিছু গণিত রেন্ডার করতে কেটেক্স ব্যবহার করছি। আমি তখন সেই পৃষ্ঠার অংশটির একটি পিডিএফ সংস্করণ তৈরি করতে চাই, তাই আমি একটি এইচটিএমএল নথি তৈরি করি যা অংশটি রফতানি করতে পারে যা সমস্ত সিএসএসকে ইনলাইন করে এবং এটি রেন্ডারকে দেয়। রেন্ডারার নোড রিসোর্সগুলি অ্যাক্সেস করতে পারে না, এ কারণেই সমস্ত কিছু অন্তর্ভুক্ত। এটি ফন্টগুলি বাদে পুরোপুরি কাজ করে।
আমি ইউআরএল-লোডার এবং বেস 64-ইনলাইন-লোডার উভয়ই চেষ্টা করেছিলাম, তবে উত্পন্ন ফন্টগুলি অন্তর্ভুক্ত নয়। আমি ডিবাগারে উত্পন্ন সিএসএস পরিদর্শন করেছি এবং পুরাতন ইউআরএলগুলি এখনও রয়েছে, ফন্টগুলির জন্য কোনও ডেটা-ইউআরএল নেই।
এটি আমার বর্তমান ওয়েবপ্যাক.কনফিগ.জেএস:
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
বিবৃতি অন্তর্ভুক্ত একটি নোড মডিউল (কেটেক্স) এর ভিতরে। আমি এই জাতীয় ফন্টগুলির কোনও নিজস্ব সিএসএস ফাইলগুলিতে উল্লেখ করি না। ওয়েবপ্যাক চলার সময় আমি ফ্লাইতে ইউআরএলগুলি প্রতিস্থাপনের জন্য একটি উপায় খুঁজছি। আমি এটি বুঝতে পারি, আমি@font-face
আপনার সমাধানটি ব্যবহার করতে চাইলে কেটেক্স সিএসএস- এর বিবৃতিগুলি পরিবর্তন করতে হবে।