Node-redis: Error al compilar con webpack

Creado en 28 jul. 2015  ·  8Comentarios  ·  Fuente: NodeRedis/node-redis

Recibo el siguiente error al compilar con webpack:

ERROR in ./~/redis/lib/parser/hiredis.js
Module not found: Error: Cannot resolve module 'hiredis' in C:\NodeServer\AppInTheWild\node_modules\redis\lib\parser
 @ ./~/redis/lib/parser/hiredis.js 3:14-32

No quiero instalar hiredis como una dependencia. ¿Qué solución tengo?

question

Comentario más útil

Tuve el mismo error y lo hice funcionar tomando prestada la solución de aquí .

Entonces, el fragmento relevante en webpack.config.js ve así:

resolve: {
  alias: {
    'hiredis': path.join(__dirname, 'aliases/hiredis.js')
  }
}

Y también creé el archivo aliases/hiredis.js que tiene el siguiente contenido:

export default null

Todos 8 comentarios

Parece que el paquete web no detecta que hiredis es una dependencia opcional de node_redis.

¿Cómo es la configuración de su paquete web? Encontré un artículo interesante que muestra cómo solo debe empaquetar su propio código y dejar cualquier cosa en node_modules como está. De esta manera, no está extrayendo módulos de terceros y empaquetándolos en su archivo de compilación final. A menos que, por supuesto, esté intentando hacer esto.

http://jlongster.com/Backend-Apps-with-Webpack--Part-I

Cerrando esto porque no hubo más respuesta y no es un problema con node-redis

Tengo el mismo problema; webpack solo parece fallar con node_redis (estoy usando webpack con éxito para empaquetar el resto de mi backend usando webpack-node-externals para omitir node_module deps).

~~~~
ERROR en ./~/redis-commands/index.js
Módulo no encontrado: Error: No se puede resolver 'archivo' o 'directorio' ./commands en demo / node_modules / redis-commands
@ ./~/redis-commands/index.js 3: 15-36

ERROR en ./~/redis-parser/lib/hiredis.js
Módulo no encontrado: Error: No se puede resolver el módulo 'hiredis' en demo / node_modules / redis-parser / lib
@ ./~/redis-parser/lib/hiredis.js 3: 14-32
~~~~

@blainsmith mi configuración aquí:

~~~~
const nodeExternals = require ('webpack-node-externals');
module.exports = {
objetivo: 'nodo',

externos: [nodeExternals ()],

resolver: {
extensiones: ['', '.js'],
módulosDirectorios: [
'módulos_nodo'
]
},

módulo: {
resolveLoader: {
root: path.join (__ dirname, 'node_modules')
},
cargadores: [
{
prueba: /.json$/,
cargador: 'json-loader'
},
{
prueba: /.js$/,
excluir: [/ node_modules /],
cargador: 'babel-loader'
},
]
},
});
~~~~

Experimentando lo mismo aquí. Se resuelven otras dependencias.

El script dev funciona, el script build: dev falla. Mismo webpack.config.js.

Guiones

"dev": "DEBUG=* && webpack-dev-server --bail --config webpack.config.js --host 0.0.0.0",
"build:dev": "webpack --config webpack.config.js ",

Deps

"botkit-storage-redis": "1.1.0",

Error de compilación

ERROR in ./~/redis-parser/lib/hiredis.js
Module not found: Error: Can't resolve 'hiredis' in '/path/to/node_modules/redis-parser/lib'
 @ ./~/redis-parser/lib/hiredis.js 3:14-32
 @ ./~/redis-parser/lib/parser.js
 @ ./~/redis-parser/index.js
 @ ./~/redis/index.js
 @ ./~/botkit-storage-redis/src/index.js
 @ ./~/botkit-storage-redis/index.js
 @ ./src/index.js

Tuve el mismo error y lo hice funcionar tomando prestada la solución de aquí .

Entonces, el fragmento relevante en webpack.config.js ve así:

resolve: {
  alias: {
    'hiredis': path.join(__dirname, 'aliases/hiredis.js')
  }
}

Y también creé el archivo aliases/hiredis.js que tiene el siguiente contenido:

export default null
yarn add hiredis
npm i --save hiredis

Solución simple sin un truco

Ver que hiredis es una dependencia opcional, y no quiero instalar dependencias innecesarias, pero tampoco quiero piratear alias, la solución más simple es utilizar webpack.IgnorePlugin ().

Agregar a webpack.config.js

plugins: [
    new webpack.IgnorePlugin(/^hiredis$/)
  ],
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

adamgajzlerowicz picture adamgajzlerowicz  ·  4Comentarios

Mickael-van-der-Beek picture Mickael-van-der-Beek  ·  6Comentarios

twappworld picture twappworld  ·  7Comentarios

shmendo picture shmendo  ·  6Comentarios

michaelwittig picture michaelwittig  ·  3Comentarios