Tengo muchos módulos diferentes en un proyecto, cada módulo tiene su propia carpeta, dentro de cada módulo, hay 3 archivos:
Cada módulo tiene estos archivos, los mismos nombres de archivo y contenido diferente.
Para los archivos index.test.js, las declaraciones de importación son todas iguales para todos los archivos index.test.js en todos los módulos, se ven así:
const runAnalysis = require('./index'); const { data } = require('./data'); const { formatData } = require('utils'); const formattedData = formatData(data);
Dado que estas declaraciones de importación son las mismas para todos los archivos index.test.js, ¿hay alguna forma de consolidarlas en una sola línea, de modo que no tenga que repetirse una y otra vez en cada módulo?
¿Hay alguna manera de colocar estas declaraciones de importación en un archivo de encabezado y luego cada index.test.js puede importar el archivo de encabezado?
No estoy seguro si esto es eficiente o recomendado, pero funciona.
Cree un archivo util js y puede vivir en el directorio raíz del proyecto, asígnele el nombre import-util.js con el siguiente código.
const { formatData } = require('utils'); const getMyImports = (dirname) => { const runAnalysis = require(`${dirname}/index`); const { data } = require(`${dirname}/data`); const formattedData = formatData(data); return { runAnalysis, formattedData } }; exports.getMyImports = getMyImports;
Luego, este archivo se puede usar así para obtener runAnalysis
y formattedData
const { runAnalysis, formattedData } = require('../import-util').getMyImports(__dirname);
__dirname
es el truco para que funcione, proporciona la ruta del directorio para que se importen index.js y data.js.
Esta única línea ahora se puede usar en cada carpeta de módulo, dado que la carpeta contiene index.js y data.js, funciona igual que las siguientes 4 líneas de código.
const runAnalysis = require('./index'); const { data } = require('./data'); const { formatData } = require('utils'); const formattedData = formatData(data);