2016-05-16 21 views
2

webpackを使用して、この設定を使用してカップルファイルをパックしました。私はapp.jsの底部とのconsole.log(jstasklib)を投げる場合、しかしwebpackで生成されたファイルをインポートまたは要求しますか?

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

:私は、ノード端子を起動し、ファイルが必要な場合は

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'], 
     }, 
     }, 
    ], 
    }, 
}; 

は、それだけで私に空のオブジェクトを提供しますnode ./dist/app.jsを実行し、私はそれが前述の例では、少なくとも輸入労働者に私を可能にするべきであるように思えるこの出力を得る:

{default: [Function: Worker]} 

だから何が与えますか?私のWebpack設定が間違っていますか? Webpackが生成したファイルから何かをインポートするための適切な設定は何ですか?

答えて

2

app.jsファイルでデフォルトの書き出しを使用している可能性がありますが、これはデフォルトでは設定されていません。

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

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

ああ甘いcommonjs2する出力libraryTargetを設定してみてください!ありがとう!それは完全に働いた:D – Rooster

関連する問題