javascript - Konfigurácia Webpacku pre react-pdf v projekte Next.js
Používam knižnicu react-pdf v Next.js na generovanie PDF, zobrazovanie PDF a sťahovanie toho PDF v statickej aplikácii Next.js na strane klienta (server nie je zapojený). Ale nedokážem nastaviť Webpack pre Next.js, pretože o tom nemám veľa znalostí.
Toto je požadované nastavenie pre Webpack pre react-pdf:
const webpack = require('webpack')
module.exports = {
/* ... */
resolve: {
fallback: {
process: require.resolve('process/browser'),
zlib: require.resolve('browserify-zlib'),
stream: require.resolve('stream-browserify'),
util: require.resolve('util'),
buffer: require.resolve('buffer'),
asset: require.resolve('assert'),
},
},
plugins: [
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'],
process: 'process/browser',
}),
],
/* ... */
}
A toto je next.config.js:
module.exports = {
webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
// Important: return the modified config
return config
},
}
Odpoveď č. 1
Ten parameter config, ktorý nám poskytuje next.config.js, je ako ten objekt, ktorý exportujeme v bežnom webpack.config.js. Skúste s týmto nastavením next.config.js:
module.exports = {
webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
config.resolve.fallback = {
process: require.resolve("process/browser"),
zlib: require.resolve("browserify-zlib"),
stream: require.resolve("stream-browserify"),
util: require.resolve("util"),
buffer: require.resolve("buffer"),
asset: require.resolve("assert"),
};
config.plugins.push(
new webpack.ProvidePlugin({
Buffer: ["buffer", "Buffer"],
process: "process/browser",
})
);
return config;
},
};
