2016-05-16 3 views
2

Ich benutzte Webpack, um einige Dateien mit dieser Konfiguration zu packen.Kann die vom Webpack generierte Datei nicht importiert oder benötigt werden?

const path = require('path'); 
const webpack = require('webpack'); 
const nodeExternals = require('webpack-node-externals'); 

module.exports = { 
    entry: ['./jstasklib/task.js', './jstasklib/worker.js'], 
    output: { 
    path: __dirname + '/dist', 
    filename: 'app.js', 
    library: 'jstasklib' 
    }, 
    target: 'node', 
    externals: [nodeExternals()], 
    devtool: 'source-map', 
    module: { 
    loaders: [ 
     { 
     test: /.js$/, 
     loader: 'babel-loader', 
     exclude: /node_modules/, 
     query: { 
      presets: ['es2015'], 
     }, 
     }, 
    ], 
    }, 
}; 

Wenn ich dann einen Knoten Terminal starten und die Datei benötigt, es gibt mir nur ein leeres Objekt:

node 
var foo = require('./dist/app.js'); 
console.log(foo); 
-> {} 

Wenn ich jedoch ein console.log(jstasklib) am unteren Rande des app.js werfen und die laufen node ./dist/app.js ich diese Ausgabe erhalten, die, wie es scheint mir in diesem früheren Beispiel mindestens Import Worker ermöglichen sollte:

{default: [Function: Worker]} 

Also, was soll das? Ist meine Webpack-Konfiguration falsch? Was ist das richtige Setup um Dinge aus der webpack generierten Datei importieren zu können?

Antwort

2

Vielleicht verwenden Sie Export-Standard in Ihrer app.js-Datei, dies ist nicht standardmäßig festgelegt. Versuchen Sie, die Ausgabe libraryTarget Einstellung commonjs2

https://webpack.github.io/docs/configuration.html#output-librarytarget

output: { 
path: __dirname + '/dist', 
filename: 'app.js', 
library: 'jstasklib', 
libraryTarget: 'commonjs2' 
}, 
+0

ah süß! Vielen Dank! das hat total funktioniert: D – Rooster

Verwandte Themen