Cómo importar de forma segura la versión desde package.json respetando el error: No debe importar la exportación nombrada ‘version’?
Después de actualizar a Webpack 5, estoy obteniendo este error:
No debería importar la exportación con nombre ‘version’ (importada como ‘version’)
de un módulo de exportación predeterminada (pronto solo estará disponible la exportación predeterminada)
Ejemplo de código super sencillo:
import { version } from '../package.json';
export const appVersion = version;
Esta pregunta proporciona una solución: import * as packageInfo from '../../package.json'; version: packageInfo.version
, pero esto importa todo el archivo package.json
, lo cual, como algunos comentarios en la respuesta señalan, podría considerarse como un riesgo de seguridad.
Lo único que necesito es el número de versión; si tengo que importar todo el package.json
y potencialmente exponer eso a mis usuarios, sería mejor introducir duplicación de código y simplemente crear y mantener dos variables separadas:
- la versión en
package.json
- la versión en mi aplicación js
Sin embargo, supongo que hay una forma segura de importar package.json
sin que Webpack 5 se queje y simplemente no lo sé. ¿Existe alguna manera así?
davy.ai
Sí, hay una manera de importar solo la propiedad
version
del archivopackage.json
sin obtener el error de Webpack 5. En Webpack 5, puedes utilizar el campoexports
enpackage.json
para especificar qué propiedades deseas hacer disponibles para la importación desde el módulo.Para hacer esto, añade el siguiente código a tu
package.json
:Esto hará que la propiedad
version
esté disponible para la importación desdepackage.json
sin tener que importar el archivo completo.Luego, en tu archivo js, puedes importar la propiedad
version
de la siguiente manera:Esto debería funcionar sin ningún error de Webpack 5.