Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

215
Views
Webpack configuration for react-pdf in a Next.js project

Im using react-pdf library in Next.js to generate PDF, view PDF and download that PDF in a Static Client Side Next.js Application (Server is not involved). But I can't set up the Webpack for Next.js as I don't have much knowledge about it.

This is what the required setup for Webpack is for 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',
    }),
  ],

  /* ... */
}

And this is the next.config.js:

module.exports = {
  webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
    // Important: return the modified config
    return config
  },
}
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

That config parameter that next.config.js gives us is like that objet we export in a normal webpack.config.js. Try with this setup of 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;
  },
};
about 4 years ago · Juan Pablo Isaza Report

0

Try to place setupProxy.js file in src directory. It content

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app, req, res) {

const options = {
    target: 'http://serverurl.com',
    changeOrigin: true,
    pathRewrite: function(path, req){
        // console.log('path BEFORE trans: %o', path);
        const p = path.replace('/api', '');
        // console.log('current_path: %o', p);
        // if(path.indexOf('manage') !== -1){
        //     p = '/web-module-backend'+p;
        // }
        // console.log('PATH: %o', p);
        return p;
    },
    onProxyRes: (proxyRes, req, res) => {
        // log original request and proxied request info
        const exchange = `[${req.method}] [${proxyRes.statusCode}] ${req.path} -> ${proxyRes.req.protocol}//${proxyRes.req.host}${proxyRes.req.path}`;
        // console.log(req.headers);
        // console.log(proxyRes.headers);
        console.log(exchange); // [GET] [200] / -> http://www.example.com
        console.log('Req URL: ' + req.originalUrl);
        console.log('Response status code: ' + proxyRes.statusCode);
        res.headers = proxyRes.headers;
    },
    onProxyReq: (proxyReq, req, res) => {
        Object.defineProperty(proxyReq, 'headers', {
            get(){
                return {
                    host: 'http://urlserver.com',
                    authorization: 'Authstring', // req.headers.authorization,
                }
            },
            set(){

            }
        })
        console.log(proxyReq.headers);
    },
    onError: (err, req, res, target) => {
        console.log(err);
    }
}

const uiProxy = createProxyMiddleware(options)

app.use(
    '/api',
    uiProxy
);

};

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!