Node-redis: 使用webpack构建时出错

创建于 2015-07-28  ·  8评论  ·  资料来源: NodeRedis/node-redis

使用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

我不想将hiredis安装为依赖。 我有什么解决方案?

question

最有用的评论

发生了同样的错误,并通过从此处借用解决方案使其工作。

因此, webpack.config.js的相关代码段如下所示:

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

我还创建了文件aliases/hiredis.js ,其内容如下:

export default null

所有8条评论

似乎Webpack并未检测到hiredis是node_redis的可选依赖项。

您的webpack配置是什么样的? 我发现了一篇有趣的文章,展示了您应该如何只打包自己的代码,并将所有内容直接保留在node_modules中。 这样,您无需引入第三方模块并将其打包到最终的构建文件中。 当然,除非您正在尝试这样做。

http://jlong​​ster.com/Backend-Apps-with-Webpack--Part-I

关闭此步骤,因为没有进一步的响应,这与node-redis无关

我有同样的问题; webpack似乎只能通过node_redis失败(我正在使用webpack成功地使用webpack-node-externals打包其余的后端,从而跳过了node_module deps)。

~~~~
./~/redis-commands/index.js中的错误
找不到模块:错误:无法解析'file'或'directory'./demo/node_modules/redis-commands中的命令
@ ./~/redis-commands/index.js 3:15-36

./~/redis-parser/lib/hiredis.js中的错误
找不到模块:错误:无法在demo / node_modules / redis-parser / lib中解析模块'hiredis'
@ ./~/redis-parser/lib/hiredis.js 3:14-32
~~~~

@blainsmith我的配置在这里:

~~~~
const nodeExternals = require('webpack-node-externals');
module.exports = {
目标:“节点”,

外部:[nodeExternals()],

解决:{
扩展名:['','.js'],
modulesDirectorys:[
'node_modules'
]
},

模块:{
resolveLoader:{
根目录:path.join(__ dirname,'node_modules')
},
装载机:[
{
测试:/。json $ /,
loader:“ json-loader”
},
{
测试:/。js $ /,
排除:[/ node_modules /],
加载程序:“ babel-loader”
},
]
},
});
~~~~

在这里经历同样的事情。 其他依赖性得到解决。

dev脚本有效, build:dev脚本失败。 相同的webpack.config.js。

剧本

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

滴水

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

建立错误

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

发生了同样的错误,并通过从此处借用解决方案使其工作。

因此, webpack.config.js的相关代码段如下所示:

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

我还创建了文件aliases/hiredis.js ,其内容如下:

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

没有黑客的简单解决方案

看到hiredis是一个可选的依赖项,我不想安装不必要的依赖项,但是我也不想破解别名,最简单的解决方案是利用webpack.IgnorePlugin()。

添加到webpack.config.js

plugins: [
    new webpack.IgnorePlugin(/^hiredis$/)
  ],
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Atala picture Atala  ·  3评论

michaelwittig picture michaelwittig  ·  3评论

jackycchen picture jackycchen  ·  4评论

ghost picture ghost  ·  3评论

strumwolf picture strumwolf  ·  4评论