2015-04-09 14 views
44

Używając WebPacka do zbudowania mojego projektu, zazwyczaj potrzebuję modułów w CommonJS z modułów npm. Potrzebuję strefy czasowej w moim projekcie, jednak przy budowaniu pakietu musisz także budować wszystkie dane z strefy czasowej, co może być całkiem sporo.Jak używać strefy czasowej z programem Webpack?

Dodatkowo kompilacja się niepowodzeniem z powodu następującego błędu:

ERROR in ./~/moment-timezone/data/packed/latest.json 
Module parse failed: /site/node_modules/moment-timezone/data/packed/latest.json Line 2: Unexpected token : 
You may need an appropriate loader to handle this file type. 
| { 
| "version": "2015a", 
| "zones": [ 
|  "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q", 
@ ./~/moment-timezone/index.js 4:15-51 

W tym momencie nie jestem tak zaniepokojony z kompilacja braku, jak ja o wielkości produkcji, czy to rzeczywiście udaje. Choć oczywiście wadliwa kompilacja również będzie musiała zostać zaadresowana w pewnym momencie.

Byłbym wdzięczny za wszelkie wskazówki, jak sobie z tym poradzić, zwłaszcza jeśli któryś z was napotkał ten sam problem używając webpacka (lub prawdopodobnie również przeglądarki).

Odpowiedz

76

Można to naprawić, dodając moduł ładujący JSON do konfiguracji pakietu sieciowego.

$npm install json-loader 

I dodać go do swoich ładowarek w pliku webpack.config.js. Nie zapomnij również dodać rozszerzenia.

{ 
    module: { 
    loaders: [ 
     {include: /\.json$/, loaders: ["json-loader"]} 
    ] 
    }, 
    resolve: { 
    extensions: ['', '.json', '.jsx', '.js'] 
    } 
} 
+1

ten pracował dla mnie po usunięciu ' rozwiązać 'część. –

+0

również pracował dla mnie bez części rozstrzygającej –

+2

Miałem trochę "nie działa" moment derp - okazało się, że to dlatego, że moja konfiguracja wykorzystywała dllPlugin pakietu Webpack do buforowania zależności, a ja umieszczałem to w niewłaściwym pliku. Dodanie go do pliku konfiguracyjnego webpack * dll *, a następnie "npm run build: dll" zrobiłem dla mnie. Jako heads-up na wypadek, gdyby ktoś miał podobny moment. – DrShaffopolis

9

Jeśli używasz 2.x WebPACK (obecnie w wersji beta)

npm install json-loader 

następnie uwzględnienie tego w swojej rules

{ 
    test: /\.json$/, 
    loader: "json-loader" 
} 
+0

Dziękuję, to zadziałało. Dodałem paczkę z Yarn, a następnie dodałem regułę do mojego pliku webpack.config. – Yuschick

Powiązane problemy