Quiero evitar esto al importar una función.
const ApiError = require('../../../../classes/ErrorClass');Hay alguna posibilidad de usar, no sé Ex:
require('mypath/ErrorClass')Si tengo 11 importaciones no quiero tener algo así
const ApiError = require('../../../../classes/ErrorClass'); const ex= require('../../../classes/ApiClass'); const ex1= require('../../../../utils/utils'); const ex2= require('../../../etc/etc'); const ex3= require('../../../../../etc/etc'); const ex4= require('../../../../etc/etc'); const ex5= require('../../../../etc/etc'); const ex6= require('../../../../etc/etc');¡Gracias!
Sí, puedes hacerlo con package.json . Imagina que tienes la siguiente estructura:
my-app/ ├─ src/ │ ├─ index.js │ ├─ node_modules/ │ ├─ dir/ │ │ ├─ nested/ │ │ │ ├─ nestedMod.js │ ├─ function/ │ │ ├─ myMod.js │ │ ├─ myMod3.js │ │ ├─ myMod2.js ├─ package.json Tienes que agregar el campo de imports en package.json
{ "name": "my-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "imports": { "#nestedMod": "./src/dir/nested/nestedMod.js", "#myFunc": "./src/function/myMod.js", "#myFunc2": "./src/function/myMod2.js", "#myFuncs/*": "./src/function/*.js" } }entonces puedes hacer:
const nestedMod = require('#nestedMod') const myFunc = require('#myFunc') const myFunc2 = require('#myFunc2') const myFunc3 = require('#myFuncs/myMod3')PD: Solo funciona en Node
Dado que no hay información sobre su configuración, intentaré proporcionar algunas soluciones diferentes aquí.
paquete web
Si está utilizando un paquete web, puede usar una configuración de alias para la propiedad de resolución para crear una asignación entre su ruta real y cómo desea llamarla. Se vería algo como esto:
const path = require('path'); module.exports = { resolve: { alias: { Components: path.resolve(__dirname, '/path/to/function') } } }Consulte los documentos del paquete web del formulario de capítulo de resolución para obtener más información.
Mecanografiado
Al usar TypeScript, puede especificar la propiedad baseUrl en tsconfig.json , lo que le permitiría especificar cada importación en relación con la ruta que especificó allí. Digamos que tiene esta ruta: '../../../../classes/ErrorClass' , que, expandida, podría verse como: src/some/folder/structure/classes/ErrorClass . Después de la configuración, esto podría parecerse a classes/ErrorClass , si la baseUrl está configurada en src/some/folder/structure .
le gustaría usar un nodo de variable incorporado proporcionado __dirname para tener el directorio raíz de la aplicación
digamos que tienes este directorio
myapp/ ├─ utils/ │ ├─ main.js ├─ lib/ │ ├─ mylib.js ├─ node_modules/Entonces, main.js:
const mylib = require(__dirname + '/lib/mylib')