Mi directorio actual es
D:\bkp\Programming\TestWorks\nodejs\testApp pero cuando estoy usando __dirname y tratando de mostrar un archivo con el servidor express me da este error
Error: ENOENT: no such file or directory, stat 'D:\views\index.html'mi código para eso es
res.sendFile(__dirname + 'views/index.html');cuando lo estoy empaquetando con el paquete web y ejecuto el archivo del paquete, esto sucede. De lo contrario, si solo ejecuto el archivo app.js normal, funciona bien. La ayuda sería apreciada.
Esto se debe a que webpack puede manejar __dirname (y otras cosas específicas del nodo) de diferentes maneras. Si desea que se comporte normalmente, use esto en la configuración de su paquete web:
{ node: { __dirname: false } }El __dirname está configurado en / por webpack, es por eso que termina con /views/index.html que es la raíz de su sistema de archivos, que resulta ser D:\ en su caso. Puede establecer node.dirname en false en la configuración de su paquete web para no inyectarlo y aplazarlo al tiempo de ejecución. Tenga en cuenta que __dirname se referirá a la ubicación del script que está ejecutando, es decir, la ubicación del paquete, no la fuente original.
node: { __dirname: false }"webpack": "^5.24.4" el valor predeterminado depende de la propiedad de configuración de target :
target: 'web' => __dirname = '/'
target: 'node' => __dirname = 'the full path of the output directory'
Se puede ajustar usando la propiedad de configuración del node , consulte https://webpack.js.org/configuration/node/#node__dirname