es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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:

  1. la versión en package.json
  2. 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í?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera de importar solo la propiedad version del archivo package.json sin obtener el error de Webpack 5. En Webpack 5, puedes utilizar el campo exports en package.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:

    "exports": {
      ".": {
        "version": "./package.json"
      }
    }
    

    Esto hará que la propiedad version esté disponible para la importación desde package.json sin tener que importar el archivo completo.

    Luego, en tu archivo js, puedes importar la propiedad version de la siguiente manera:

    import { version } from '../package.json';
    

    Esto debería funcionar sin ningún error de Webpack 5.

Comments are closed.