Comment utiliser moment-timezone avec webpack?

en utilisant webpack pour construire mon projet, j'ai généralement besoin de modules dans CommonJS à partir de modules npm. J'ai besoin de moment-timezone dans mon projet, cependant dans la construction du paquet vous devez aussi construire toutes les données de moment-timezone, ce qui peut être beaucoup.

en Outre, la compilation échoue avec l'erreur suivante:

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

à ce stade, Je ne suis pas aussi préoccupé par l'échec de la construction, que je ne le suis par la taille de la construction si elle réussit. Bien, il est évident que la construction défaillante devra également être abordée à un moment donné.

j'apprécierais des conseils sur la façon de gérer cela, surtout si l'un d'entre vous a rencontré ce même problème en utilisant webpack (ou browserify aussi, probablement).

45
demandé sur Matt Johnson 2015-04-09 23:30:34

2 réponses

vous pouvez corriger cela en ajoutant le JSON loader à votre configuration webpack.

$npm install json-loader

et l'ajouter à vos chargeurs dans webpack.config.js. N'oubliez pas d'ajouter l'extension.

{
  module: {
    loaders: [
        {include: /\.json$/, loaders: ["json-loader"]}
    ]
  },
  resolve: {
    extensions: ['', '.json', '.jsx', '.js']
  }
}
79
répondu Jeroen Coumans 2015-04-21 12:04:11

si vous utilisez webpack 2.x (actuellement en bêta)

npm install json-loader

alors incluez ceci dans votre rules

{
    test: /\.json$/,
    loader: "json-loader"
}
9
répondu William S 2016-11-24 10:16:01