2016-08-13 11 views
6

मैं अपने reactjs एप्लिकेशन के राज्य के लिए एक JSON फ़ाइल लोड करने के लिए कोशिश कर रहा हूँ के साथ json पार्स करने में विफल रहता है, लेकिन webpack इस त्रुटि फेंक रखता है:webpack भी json लोडर

ERROR in ./src/data/questions.json 
Module parse failed: C:\Users\[...]\myApp\src\data\questions.json 
Unexpected token (2:9) 
You may need an appropriate loader to handle this file type. 
SyntaxError: Unexpected token (2:9) 
... 

JSON फ़ाइल वैध है, और मैं वेबपैक के लिए जेसन-लोडर का उपयोग कर रहा हूं, इसलिए मुझे यकीन नहीं है कि समस्या क्या है।

module.exports = { 
    entry: __dirname + '/src/index.js', 
    output: { 
    filename: 'bundle.js', 
    path: __dirname + '/dist/js' 
    }, 
    cache: true, 
    debug: true, 
    devtool: 'source-map', 
    module: { 
    loaders: [{ 
     test: /\.jsx?$/, 
     exclude: /(node_modules|\.c9)/, 
     loader: 'babel', 
     query: { 
     presets: ['react', 'es2015', 'stage-0'] 
     } 
    }, { 
     test: /\.json$/, 
     loader: 'json-loader' 
    }] 
    } 
}; 

यह कैसे मैं json फ़ाइल आयात कर रहा हूँ है:

यहाँ मेरी webpack.config.json फ़ाइल है

const quizes = [ 
    require('./data/questions.json') 
]; 

मैं ऊपर लाइन में बदलते हैं:

const quizes = [ 
    require('json!./data/questions.json') 
]; 

मुझे एक अलग त्रुटि मिलती है:

ERROR in ./~/json-loader!./src/data/questions.json 
Module build failed: SyntaxError: Unexpected token m 
    at Object.parse (native) 
    at Object.module.exports (C:\Users\[...]\myApp\node_modules\json-loader\index.js:7:48) 

उपर्युक्त विधि (json! उपसर्ग) का उपयोग करते हुए, यह और भी अजीब हो जाता है, त्रुटि तुरंत (प्रारंभिक निर्माण के दौरान) फेंक दी जाती है। हालांकि, अगर मैं इसे वेबपैक कॉन्फ़िगर लोडर में छोड़ देता हूं, तो प्रारंभिक बिल्ड बिना त्रुटि के पूरा करता है, लेकिन बाद में त्रुटि को फेंक देता है।

इसके बावजूद, मेरा ऐप अभी भी अधिकांश समय काम करता है। यहाँ क्या चल रहा है?

उत्तर

2

पुराना सवाल, लेकिन आपने एक लोडर दो बार निर्दिष्ट किया है: एक बार webpack.config.js में और फिर अपने require के साथ। एक या दूसरे का प्रयोग करें और इससे त्रुटि को हटा देना चाहिए।

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