2016-07-10 4 views
6

アップデート - 関連:How to prepend module.exports = to webpack bundle?Webpackバンドルを必要とする - 空のオブジェクトを返しますか?


私はWebPACKの私はconsole.log(foo)私は空のオブジェクト{}

を取得すると、私は var foo = require("./foo.js")

を持つノードserver.jsでは、単純なmodule.exports = "asdfasdf"foo.js

をコンパイルしています

私は何が間違っていますか?

私のWebPACKの設定:

module.exports = { 
    entry: "./test.js", 
    output: { 
     filename: "./foo.js" 
    }, 
    target: "node", 
    module: { 
     loaders: [ 
      { 
       exclude: /(node_modules|bower_components)/, 
       loader: "babel?presets[]=react,presets[]=es2015" 
      } 
     ] 
    }, 
    devtool: "#source-map" 
}; 
+0

コンパイルした 'foo.js'の内容を投稿できますか? – TN1ck

答えて

8

私はあなたがlibraryTarget -settingが欠けていると思います。設定にlibraryTarget: "commonjs2"を追加すると問題が解決するはずです。 See the webpack-docs about it。私は設定した場合でもバベル6 でバベル・ローダーを使用するときに私の場合は

3

私は同じ問題を抱えている

"libraryTarget": "commonjs2" 

私は結果があります:あなたがしたい場合

const foo = require('some-module'); 
console.log(foo) // is {} 

const bar = require('some-module').default; 
console.log(bar) // is default export of 'some-module' 

を:

const foo = require('some-module'); 
console.log(foo) // is default export of 'some-module' 

使用可能: babel-plugin-add-module-exports

UPDATE:のWebPACKの

著者はこのためバベル・プラグインを使用することはお勧めしません。

WebPACKの3はオプションoutput.libraryExportそれは `tのさ今詳細なドキュメントを持っている)

私はこの

output.libraryExport: 'default' 

ようにしようと、それが問題をresovledがあります。

関連する問題