mirror of
https://github.com/foliojs/pdfkit.git
synced 2025-12-08 20:15:54 +00:00
72 lines
1.9 KiB
JavaScript
72 lines
1.9 KiB
JavaScript
const path = require('path');
|
|
const webpack = require('webpack');
|
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
|
|
module.exports = {
|
|
plugins: [
|
|
new HtmlWebpackPlugin({
|
|
template: path.resolve(__dirname, 'src/index.html')
|
|
}),
|
|
new webpack.ProvidePlugin({
|
|
Buffer: ['buffer', 'Buffer'],
|
|
process: 'process/browser'
|
|
})
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
// maps fs to a virtual one allowing to register file content dynamically
|
|
fs: 'pdfkit/js/virtual-fs.js',
|
|
// iconv-lite is used to load cid less fonts (not spec compliant)
|
|
'iconv-lite': false
|
|
},
|
|
fallback: {
|
|
// crypto module is not necessary at browser
|
|
crypto: false,
|
|
// fallbacks for native node libraries
|
|
buffer: require.resolve('buffer/'),
|
|
stream: require.resolve('readable-stream'),
|
|
zlib: require.resolve('browserify-zlib'),
|
|
util: require.resolve('util/'),
|
|
assert: require.resolve('assert/')
|
|
}
|
|
},
|
|
module: {
|
|
rules: [
|
|
// bundle and load afm files verbatim
|
|
{ test: /\.afm$/, type: 'asset/source' },
|
|
// bundle and load binary files inside static-assets folder as base64
|
|
{
|
|
test: /src[/\\]static-assets/,
|
|
type: 'asset/inline',
|
|
generator: {
|
|
dataUrl: content => {
|
|
return content.toString('base64');
|
|
}
|
|
}
|
|
},
|
|
// load binary files inside lazy-assets folder as an URL
|
|
{
|
|
test: /src[/\\]lazy-assets/,
|
|
type: 'asset/resource'
|
|
},
|
|
// convert to base64 and include inline file system binary files used by fontkit and linebreak
|
|
{
|
|
enforce: 'post',
|
|
test: /fontkit[/\\]index.js$/,
|
|
loader: 'transform-loader',
|
|
options: {
|
|
brfs: {}
|
|
}
|
|
},
|
|
{
|
|
enforce: 'post',
|
|
test: /linebreak[/\\]src[/\\]linebreaker.js/,
|
|
loader: 'transform-loader',
|
|
options: {
|
|
brfs: {}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
};
|