Usando Webpack 2.3.3 y Babel-loader
Soy nuevo en el uso de Webpack y estoy tratando de agrupar archivos de configuración regional angular-i18n usando webpack. Tengo un objeto de configuración que enumera las configuraciones regionales compatibles con la aplicación. Por ejemplo:
var supportedLocales = { 'FR': { currency: 'EUR', id: 'fr-fr' }, 'GB': { currency: 'GBP', id: 'en-gb', }, 'US': { currency: 'USD', id: 'en-us' } } Cuando instalo la biblioteca angular-i18n, genera TODAS las configuraciones regionales en el node_modules/angular-i18n/ . Por ejemplo:
node_modules/ |_ angular-i18n/ |_ angular-locale_en-gb.js |_ angular-locale_en-us.js |_ angular-locale_fr-fr.js |_ ...webpack.config.js (simplificado para publicación)
module.exports = { context: path.join(config.appDir, '/client/assets'), entry: { main: [ './js/index.js' ] }, plugins: [ new webpack.DefinePlugin({ 'SUPPORTED_LOCALES': JSON.stringify({ supportedLocales }) }), module: {..etc} };supportedLocales e incluirlos en el paquete main.js ? Por ejemplo:índice.js
// This doesn't work _.each(SUPPORTED_LOCALES, function(locale) { require(`angular-i18n/angular-locale_${locale.id}`); })locales.js en el tiempo de ejecución de la aplicación?Cualquier ayuda sería muy apreciada.
Si require explícitamente cada configuración regional con un literal de cadena, el paquete web debe comprender eso y solo incluir los módulos necesarios:
require('angular-i18n/angular-locale_fr-fr'); require('angular-i18n/angular-locale_en-gb'); // ... Su estilo de require -ing obliga a webpack a incluir todas las coincidencias posibles de la cadena de plantilla en el paquete, ya que no ejecuta su código. Consulte esta respuesta para obtener una explicación más detallada de lo que está sucediendo: cargador de módulos dinámicos webpack por require (o bien, enlace directo a los documentos: https://webpack.js.org/guides/dependency-management/#require-with-expression )