Solución:
de acuerdo con la estructura de carpetas que mencionaste en la pregunta, debes probar
require('../utils/utils.js')
Este es el caso si tiene la carpeta de su proyecto estructurada como
- proyecto
- src
- utils
- utils.js
- principal
- main.js
- utils
- src
Y tú estas haciendo node main.js
Para comentar los detalles proporcionados en su pregunta.
-
por favor no use
require(c:/demo/proj/src/utils/utils.js);
a medida que lo prueban. imagina que estás exportando elproj
carpeta con los archivos de su proyecto, entonces el requerimiento mencionado será un error. -
Además, la estructura de la carpeta podría ser algo como
- proyecto
- src
- utils – utils.js
- main.js
- package.json
- src
- proyecto
para que mantenga el archivo principal en la raíz de la carpeta del proyecto. y requieren los utils.js como
require('./src/utils/utils.js')
ACTUALIZAR
Por lo que ican ve en el mensaje de error actualizado. Sigue siendo el problema con la ruta de ‘utils.js’ en require. Desde su estructura de carpeta actualizada parece que main.js
está en el mismo nivel que proj
carpeta, ver que la estructura de carpeta propuesta tenía main.js
y src
carpeta en el mismo nivel dentro proj
carpeta.
Incluso esa fue una sugerencia que hice mientras seguías una estructura de carpetas que no tenía ningún sentido. Simplemente require('../utils/utils.js')
habría resuelto su problema sin siquiera alterar la estructura de carpetas que mencionó al principio.
Usar: require('./utils.js');
. Esta es la forma correcta de solicitar un módulo de un archivo que se encuentra en la carpeta del módulo requerido.
Debes proporcionar una ruta relativa o absoluta, supongo. utils.js
no esta en tu raiz asi require('/utils.js');
no es el camino correcto.
Ejemplo:
Imagina que tienes dos archivos utils.js
y main.js
en la misma carpeta. El contenido de utils.js
es:
utils.js
exports.foo = function () {
console.log('foo');
};
Para llamar foo
de utils.js
en main.js
Deberías usar:
main.js
require('./utils.js').foo();