2016-07-10 29 views
6

Update - powiązane: How to prepend module.exports = to webpack bundle?Wymagaj pakietu Webpack - zwraca pusty obiekt?


Mam WebPack skompilować prosty module.exports = "asdfasdf" do foo.js

w węźle server.js mam var foo = require("./foo.js")

Kiedy console.log(foo) dostaję pusty obiekt {}

Co robię źle?

Moja WebPack config:

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

Czy mógłbyś opublikować zawartość skompilowanego 'foo.js'? – TN1ck

Odpowiedz

3

W moim przypadku mam ten sam problem przy korzystaniu Babel ładowarka z Babel 6. Nawet kiedy ustawić

"libraryTarget": "commonjs2" 

mam wyniki:

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

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

Jeśli chcesz:

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

Można użyć: babel-plugin-add-module-exports

UPDATE:

Autorzy WebPack nie zalecają stosowania Babel wtyczki do tego.

WebPACK 3 ma opcję output.libraryExport (jest don`t mieć szczegółowe docs teraz)

starałem się ten

output.libraryExport: 'default' 

i rozdzielane problem.