【问题标题】:Webpack 1 with transform-loader?brfs on Windows 10Windows 10 上带有 transform-loader?brfs 的 Webpack 1
【发布时间】:2020-01-01 18:14:16
【问题描述】:

我正在使用库pdfkit,它使用fontkit,其中硬编码require('fs'),无论您是在客户端还是服务器上使用它。

现在项目在 React 中,使用 Webpack 1 进行打包。该问题的常规解决方法是使用以下 webpack 配置。

module: {
  loaders: [
    {
      test: /\.json$/,
      loader: 'url-loader'
    },
    {
      test: /node_modules\/(pdfkit|fontkit|png-js|linebreak|unicode-properties|brotli)\ //,
      loader: "transform-loader?brfs"
    },
  ],
},

这适用于 MacOS、Linux 和 Docker 容器现在适用于 Windows 10 工作站。我找不到遇到同样问题的人。

已编辑以下问题未完全解决

我设法通过在node_modules/fs/index.js 文件中硬编码的以下假库来克服它:

class fsClass {
  readFileSync (file) {
    return new Promise((resolve) => resolve('fake readFileSync: ' + file));
  }
}

const fs = new fsClass();

module.exports = fs;

该项目以这种方式编译它并且正在运行,但我仍然认为这不是正确的决定。任何帮助/想法将不胜感激!

谢谢!

【问题讨论】:

    标签: node.js windows webpack fs pdfkit


    【解决方案1】:

    到目前为止,我只解决了一个问题。正如这里所建议的: https://github.com/foliojs/pdfkit/wiki/How-to-compile-standalone-PDFKit-for-use-in-the-browser

    $ npm install browserify brfs
    $ npm install pdfkit 
    $ node_modules/.bin/browserify --standalone PDFDocument node_modules/pdfkit/js/pdfkit.js > pdfkit.js
    

    然后将文件复制到 src 文件夹中并从那里包含pdfkit。事情完美无缺。结果是 - repo 中的预编译库和一个 Webpack 警告。

    如果有人提出更好的决定,我仍然会很高兴

    【讨论】:

      猜你喜欢
      • 2019-02-24
      • 2016-09-15
      • 2017-02-16
      • 2017-11-25
      • 2016-05-22
      • 1970-01-01
      • 2018-08-09
      • 2015-12-03
      • 2017-03-19
      相关资源
      最近更新 更多