2017-05-03 9 views
2

Ich möchte einige PDF-Dokumente programmatisch drucken. und ich versuche seit Stunden this PDFkit library mit dem Webpack zu arbeiten.Wie wird die PDFkit-Bibliothek mit dem Webpack verwendet?

Ich bin gegangen Form:

Can't resolve 'fs' in ..

zu

fs.readFileSync is not a function

dann auf die Warnung

[BABEL] Note: The code generator has deoptimised the styling of "E:/MyProjects/accountingsystem/node_modules/brotli/dec/dictionary-da 
ta.js" as it exceeds the max of "500KB". 

dann

require is not defined - ich stecke hier fest. All diese Fehler kommen innerhalb der Bibliothek selbst.

Ich habe nur eine Datei - app.js mit nur eine einzige Zeile Code, das ist:

const PDFDocument = require('pdfkit');

Meine letzte webpack.config.js sieht wie folgt aus:

module.exports = { 
// devtool: 'source-map', 

entry: './src/app.js', 
output: { 
    path: path.resolve (__dirname, "dist"), 
    filename: "bundle.js" 
}, 

// node: { 
//  console: true, 
//  fs: 'empty', 
//  net: 'empty', 
//  tls: 'empty' 
// }, 

// i've added 'target' - following the advice form some github comments. 
target: 'node', 
module : { 
    rules : [ 
     { test: /\.js$/, loader: 'babel-loader' }, 
     { 
      test : /\.html$/, 
      use : [ 'html-loader' ] 
     }, 

     // then i've added this 2 loaders also: 
     { test: /\.json$/, loader: 'json-loader' }, 
     { test: /pdfkit|png-js/, loader: "transform-loader?brfs" } 
    ] 
}, 
plugins:[ 
    new HtmlWebpackPlugin ({ 
      template : `src/app.html` 
    }) 
], 

};

Dies ist buchstäblich eine 1-Zeilen-App, und ich bin jetzt stundenlang an der Wand. Ich habe gesehen, dass viele Benutzer Probleme mit fs Kernmodul und webpack haben - und ich versuchte jede Lösung, die ich finden konnte. Wie schwer kann es sein? Was passiert hier eigentlich? Jeder Einblick wird geschätzt, Danke.

Antwort

1

Es ist möglich, es mit Webpack arbeiten zu lassen.

pdfmake ist ein Wrapper um pdfkit, der mit Webpack funktioniert. Wie Sie sehen können, die webpack.config.js Art von Hacky ist:

https://github.com/bpampuch/pdfmake/blob/master/webpack.config.js

Persönlich endete ich mit pdfmake up arbeiten, die über eine integrierte js-Datei zur Verfügung stellt. Wenn Sie dies tun, müssen Sie Ihre webpack.config anpassen, verwenden Sie das Feld resolve.alias, um auf die pdfmake eingebaute js-Datei zu zeigen.

Verwandte Themen