En utilisant webpack pour construire mon projet, j'ai généralement besoin de modules dans CommonJS à partir de modules npm. J'ai besoin d'un fuseau horaire dans mon projet, mais lors de la construction du package, vous devez également générer toutes les données à partir du fuseau horaire, ce qui peut être beaucoup.
En outre, la génération é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 génération, que par la taille de la génération si elle réussit réellement. Bien sûr, la construction défaillante devra également être corrigée à un moment donné.
J'apprécierais tous les 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).
Vous pouvez résoudre ce problème en ajoutant le chargeur JSON à la configuration de votre webpack.
$npm install json-loader
Et ajoutez-le à vos chargeurs dans webpack.config.js. N'oubliez pas d'ajouter également l'extension.
{
module: {
loaders: [
{include: /\.json$/, loaders: ["json-loader"]}
]
},
resolve: {
extensions: ['', '.json', '.jsx', '.js']
}
}
Si vous utilisez webpack 2.x (actuellement en version bêta)
npm install json-loader
incluez-le ensuite dans votre rules
{
test: /\.json$/,
loader: "json-loader"
}