Al usar webpack para construir mi proyecto, normalmente requiero módulos en CommonJS de módulos npm. Necesito moment-timezone en mi proyecto, sin embargo, al crear el paquete, también debe compilar todos los datos de moment-timezone, que pueden ser muchos.
Además, la compilación falla con el siguiente error:
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-51En este punto, no estoy tan preocupado por la falla de la compilación, sino por el tamaño de la compilación si realmente tiene éxito. Aunque, obviamente, la compilación fallida también deberá abordarse en algún momento.
Agradecería cualquier sugerencia sobre cómo manejar esto, especialmente si alguno de ustedes ha encontrado este mismo problema al usar webpack (o browserify también, probablemente).
Puede solucionar esto agregando el cargador JSON a la configuración de su paquete web.
$npm install json-loaderY agréguelo a sus cargadores en webpack.config.js. No olvide agregar la extensión también.
{ module: { loaders: [ {include: /\.json$/, loaders: ["json-loader"]} ] }, resolve: { extensions: ['', '.json', '.jsx', '.js'] } }Si está utilizando webpack 2.x (actualmente en versión beta)
npm install json-loader entonces incluye esto en tus rules
{ test: /\.json$/, loader: "json-loader" }