【问题标题】:Webpack Cannot load pdf file: Module parse failed You may need an appropriate loader to handle this file typeWebpack 无法加载 pdf 文件:模块解析失败您可能需要适当的加载器来处理此文件类型
【发布时间】:2022-01-25 01:27:32
【问题描述】:

我是 webpack 的新手。最近,我想在我的一个项目中找到一种查看 pdf 的方法。我找到了一个名为“react-pdf”(https://www.npmjs.com/package/react-pdf)的库,并决定尝试一下。在测试反应项目(npx create-react-app)中使用它时,一切正常,但是当我使用 Nextjs 将它引入实际项目时,事情就出错了。

import placeholder from "../src/placeholder.pdf""

每次服务器重新加载时,我都会收到此错误: * 错误 - ./assets/pdf/placeholder.pdf 模块解析失败:意外令牌 (1:0) 您可能需要适当的加载程序来处理此文件类型,目前没有配置加载程序来处理此文件。见https://webpack.js.org/concepts#loaders (此二进制文件省略源代码)*

这是 webpack 配置:

const path = require('path');

module.exports = {
    entry: './src/index.js',
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist'),
    },
    module: {
        rules: [
            {
                test: /\.pdf$/i,
                type: 'asset/resource',
                generator: {
                    filename: `[name][ext]`
                }
            }
        ],
    },
    mode: 'development'
};

我做错了什么?

【问题讨论】:

  • 在 Next.js 中,custom webpack configuration 设置在 next.config.js 中。你能分享你的 Next.js 配置文件吗?
  • 你前几天已经问过这个问题,我回答了。您已将其配置为资源资产,但我很确定您需要type: 'asset/source',因此它会加载 PDF 的原始内容。 stackoverflow.com/questions/70805853/…
  • type: 'asset/source 不起作用,问题是 webpack 甚至没有安装

标签: javascript pdf webpack next.js


【解决方案1】:

next.config.js

module.exports = {
    webpack: (config, options) =>
    {
        config.module.rules.push({
            test: /\.pdf$/i,
            type: 'asset/source'
        })

        return config
    },
}

【讨论】:

  • 这是对您问题的完整答案,还是应该在问题中提供的其他信息?
  • 这是完整的答案
猜你喜欢
  • 2019-10-11
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-28
  • 2018-07-12
  • 1970-01-01
相关资源
最近更新 更多