Node-redis: ์›นํŒฉ์œผ๋กœ ๋นŒ๋“œํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  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

๋‚˜๋Š” ํ•˜์ธ ๋””์Šค๋ฅผ ๋””ํŽœ ๋˜์‹œ๋กœ ์„ค์น˜ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค. ์–ด๋–ค ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ๊ณ  ์—ฌ๊ธฐ ์—์„œ ์†”๋ฃจ์…˜์„ ๋นŒ๋ ค์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ webpack.config.js ์˜ ๊ด€๋ จ ์Šค ๋‹ˆํŽซ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

๋˜ํ•œ ๋‹ค์Œ ๋‚ด์šฉ์ด ํฌํ•จ ๋œ aliases/hiredis.js ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

export default null

๋ชจ๋“  8 ๋Œ“๊ธ€

webpack์ด hiredis๊ฐ€ node_redis์˜ ์„ ํƒ์  ์ข…์†์„ฑ์ž„์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์›นํŒฉ ๊ตฌ์„ฑ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ž์‹ ์˜ ์ฝ”๋“œ ๋งŒ ํŒจํ‚ค์ง•ํ•˜๊ณ  node_modules ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋‘๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ํฅ๋ฏธ๋กœ์šด ๊ธฐ์‚ฌ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ํƒ€์‚ฌ ๋ชจ๋“ˆ์„ ๊ฐ€์ ธ ์™€์„œ ์ตœ์ข… ๋นŒ๋“œ ํŒŒ์ผ๋กœ ํŒจํ‚ค์ง•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ทธ๋ ‡๊ฒŒํ•˜๋ ค๊ณ ํ•˜์ง€ ์•Š๋Š” ํ•œ.

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

๋” ์ด์ƒ ์‘๋‹ต์ด์—†๊ณ  node-redis์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ด๊ฒƒ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. webpack์€ node_redis๋กœ๋งŒ ์‹คํŒจํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (webpack-node-externals๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜๋จธ์ง€ ๋ฐฑ์—”๋“œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜์—ฌ node_module deps๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค).

~~~~
./~/redis-commands/index.js์˜ ์˜ค๋ฅ˜
๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ : ์˜ค๋ฅ˜ : demo / node_modules / redis-commands์—์„œ 'file'๋˜๋Š” 'directory'./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'],
modulesDirectories : [
'๋…ธ๋“œ _ ๋ชจ๋“ˆ'
]
},

๋ชจ๋“ˆ : {
resolveLoader : {
๋ฃจํŠธ : path.join (__ dirname, 'node_modules')
},
๋กœ๋” : [
{
ํ…Œ์ŠคํŠธ : /.json$/,
๋กœ๋” : '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 ",

Deps

"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 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

strumwolf picture strumwolf  ยท  4์ฝ”๋ฉ˜ํŠธ

michaelwittig picture michaelwittig  ยท  3์ฝ”๋ฉ˜ํŠธ

jackycchen picture jackycchen  ยท  4์ฝ”๋ฉ˜ํŠธ

abhaygarg picture abhaygarg  ยท  5์ฝ”๋ฉ˜ํŠธ

betimer picture betimer  ยท  5์ฝ”๋ฉ˜ํŠธ