2016-07-10 12 views
6

अपडेट - संबंधित: How to prepend module.exports = to webpack bundle?वेबपैक बंडल की आवश्यकता है - खाली वस्तु लौटाता है?


मैं webpack संकलन है एक सरल module.exports = "asdfasdf" करने के लिए foo.js

एक नोड server.js मैं var foo = require("./foo.js")

है जब मैं console.log(foo) मैं एक खाली वस्तु पाने में {}

मैं क्या गलत कर रहा हूँ ??

मेरे 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

क्या आप संकलित 'foo.js' की सामग्री पोस्ट कर सकते हैं? – TN1ck

उत्तर

8

मुझे लगता है कि आप libraryTarget -setting याद कर रहे हैं। कॉन्फ़िगरेशन में libraryTarget: "commonjs2" जोड़ना समस्या को ठीक करना चाहिए। See the webpack-docs about it

3

मेरे मामले में मैं एक ही समस्या है जब कोलाहल-लोडर का उपयोग कर कोलाहल 6. साथ यहां तक ​​कि जब मैं सेट

"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

अद्यतन:

webpack के लेखकों इस के लिए कोलाहल-प्लगइन उपयोग करने की अनुशंसा नहीं करते।

Webpack 3 विकल्प output.libraryExport (यह डॉन 'टी है अब विस्तृत डॉक्स है)

मैं इस

output.libraryExport: 'default' 

तरह की कोशिश की और यह समस्या resovled है।

संबंधित मुद्दे