Sé que esto suena tan fácil como usar globales, pero no estoy tan seguro.
Aquí está mi caso:
/src de mi aplicación React, llamémoslos src/a.js , src/b.js , ./src/a.js :
export default { filename: 'a', foo: 'bar', }; ./src/b.js :
export default { filename: 'b', foo: 'bar', blah: 'hah', }; Ahora tengo un comando para verificar si la estructura de los objetos dentro de estos archivos coincide o no (muchos desarrolladores los están cambiando varias veces al día), por lo que cuando npm check en la terminal devolverá false para la entrada anterior, porque blah lo hace no existe dentro de dos archivos.
Mi package.json se ve así:
"scripts": { "check": "node check.js runCheck", /.../ } Mi pregunta es: ¿cómo diablos cargo estas variables para compararlas en package.json ?
tengo un archivo llamado:
./check.js :
function check(files) { // checking files there }; module.exports.check = check;Este es un archivo de compilación, no parte de la aplicación en sí, así que cuando intento hacer:
./check.js :
import a from './src/a'; import b from './src/b';Me estoy poniendo:
SyntaxError: no se puede usar la declaración de importación fuera de un módulo.
Esto va a causar problemas, porque estoy usando importaciones, no módulos dentro de mi aplicación, por lo tanto, hago lo siguiente:
./check.js :
const a = require('./src/a'); const b = require('./src/b');Devoluciones:
Error: No se puede encontrar el módulo './src/a'.
Por supuesto que no puedo hacer module.exports dentro de los archivos a.js / b.js , porque son parte de mi aplicación y deberían usar exportaciones, he intentado usar tanto export como module.exports , pero lo hace no funciona tan bien y se ve horrible.
¿Cómo abordo esto? ¿Debo cargar los archivos usando algún cargador de archivos, analizarlos como JSON y luego compararlos? ¿O tal vez hay una manera más fácil?
Deberá usar algo como esm ( https://github.com/standard-things/esm ) para ejecutar el nodo con soporte de módulo.
Debería ser tan simple como:
npm install esm
Luego actualice el script de su paquete para que sea:
"check": "node -r esm check.js runCheck",
Editar Por cierto, una pregunta muy clara y bien estructurada.