2016-08-13 25 views
6

próbuję załadować plik JSON za stan mojego reactjs aplikacji, ale WebPack zachowuje rzuca ten błąd:WebPack nie trafia do analizowania JSON nawet z ładowaczem 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) 
... 

Plik JSON jest ważny, a Używam programu json-loader dla pakietu internetowego, więc nie jestem pewien, na czym polega problem.

Oto moja webpack.config.json file:

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

To jak mam importując plik JSON:

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

Jeśli zmienić powyższy wiersz na:

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

Otrzymuję inny błąd:

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) 

Tam, gdzie robi się jeszcze dziwniej, przy użyciu powyższej metody (prefiks json!), błąd jest generowany natychmiast (podczas początkowej kompilacji). Jednakże, jeśli zostawiam go w ładowarkach konfiguracyjnych, początkowa kompilacja zakończy się bezbłędnie, ale kolejne kompilacje zgłoszą błąd.

Mimo to moja aplikacja nadal działa przez większość czasu. Co tu się dzieje?

Odpowiedz

2

Starsze pytanie, ale dwukrotnie określono moduł ładujący: raz w webpack.config.js i ponownie z numerem require. Użyj jednego lub drugiego, a to powinno usunąć błąd.

Powiązane problemy