Next.js 项目中 React-pdf 的 Webpack 配置

Abh*_*hit 2 javascript typescript reactjs webpack next.js

我使用react-pdfNext.js 中的库生成 PDF、查看 PDF 并在静态客户端 Next.js 应用程序中下载该 PDF(不涉及服务器)。但我无法为 Next.js 设置 Webpack,因为我对此了解不多。

这就是 Webpack 所需的设置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',
    }),
  ],

  /* ... */
}

Run Code Online (Sandbox Code Playgroud)

这是next.config.js

module.exports = {
  webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => {
    // Important: return the modified config
    return config
  },
}
Run Code Online (Sandbox Code Playgroud)

You*_*mar 5

config为我们提供的参数就像next.config.js我们在普通webpack.config.js. 尝试使用以下设置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;
  },
};
Run Code Online (Sandbox Code Playgroud)