2017-11-12 1 views
0

Ich habe ein Modul in NodeJS konvertieren, wird der Eintrag Haupt ist main.js:Wie NodeJS Dateien Vanilla Dateien

main.js 
└─┬ source 
    ├── a.js 
    ├── b.js 
    ├── c.js 
    └── d.js 

Dieses Modul wurde in der Hauptdatei wie

module.exports = ZTree; 

module.export Und haben Sie eine Anforderung in jeder Datei. Ich verwende keine Knotenmodule oder andere Module. Nur Dateien in Quelle Ordner.

Also möchte ich dieses Modul in einer Webanwendung in einer einzigen js-Datei verwenden. Also habe ich versucht, mit webpack:

const path = require('path'); 

module.exports = { 
    entry: './ztree/main.js', 
    output: { 
     path: path.resolve(__dirname, 'rtree'), 
     filename: 'ztree.js' 
    }, 
} 

Aber wenn ich in meinem test.html das Skript gesetzt:

<script src="./ztree.js"></script> 

Ich kann es nicht verwenden.

Also meine Frage ist, wie ich "NodeJS-Dateien" in "Vanilla-Dateien" für das Web konvertieren kann.

Danke!

+0

kann Warum verwendest du es nicht? Welche Fehler erhalten Sie? – Matt

+0

@Matt wenn ist rein ich bekomme "Uncaught ReferenceError: require ist nicht definiert " und wenn ich webpack verwende ich bekomme "Uncaught ReferenceError: Ztree ist nicht definiert" – jtwalters

+1

Haben Sie versucht, mit dieser Option? https://webpack.github.io/docs/configuration.html#output-library –

Antwort

1

Dank @justin-summerlin für die Antwort zu lösen.

muss hinzufügen libraryTarget und Bibliothek in der Ausgabe auf webpack.config.js

const path = require('path'); 

module.exports = { 
    entry: './ztree/main.js', 
    output: { 
     path: path.resolve(__dirname, 'rtree'), 
     filename: 'app.js', 
     libraryTarget: "var", 
     library: 'ZTree' 
    }, 
} 

Und in der HTML-Datei können Sie es gerne verwenden:

let ztree = new ZTree(); // As your library name