Request: ์›นํŒฉ ํ˜ธํ™˜์„ฑ ์˜ค๋ฅ˜

์— ๋งŒ๋“  2015๋…„ 11์›” 19์ผ  ยท  18์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: request/request

์ €๋Š” ์›นํŒฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ธก ์ฝ”๋“œ๋ฅผ ํŒจํ‚ค์ง•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ ํŒจํ‚ค์ง€๋ฅผ 2.65.0์—์„œ 2.67.0์œผ๋กœ ์˜ฌ๋ ธ์„ ๋•Œ. ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

./web/dist/server.js:153022
    module.exports = function() { throw new Error("define cannot be used indirect"); };

Error: define cannot be used indirect

webpack:///(webpack)/buildin/amd-define.js?:1
module.exports = function() { throw new Error("define cannot be used indirect"); };

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

@manumax ๊ฐ€ ์–ธ๊ธ‰ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์š”์ฒญ ๋ชจ๋“ˆ์„ 2.65.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๊ณ ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

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

๋‚˜๋Š” ๋˜ํ•œ ์ด๊ฒƒ์„ ์–ป๊ณ  ์žˆ๋Š”๋ฐ, ์ด ๋ฌธ์ œ๋Š” ์š”์ฒญ์˜ ๋ฒ„์ „ 2.65.0์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ด์ „์— ์›นํŒฉ์œผ๋กœ ์ปดํŒŒ์ผํ•  ๋•Œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์—์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ผ๋ถ€ ๊ฒฝ์šฐ๋ฅผ ์ˆ˜์ •ํ•œ ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ด ์ƒˆ ๋ฒ„์ „์˜ ์š”์ฒญ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/webpack/webpack/issues/138 ์ฐธ์กฐ

์š”์ฒญ ์‹œ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ ๋ถ€ ๋ฒ„์ „์ด ๋นŒ๋“œ๋ฅผ ์ค‘๋‹จํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

์›นํŒฉ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” http-signature ๋ฅผ 0.11.x์—์„œ 1.1.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ด์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์˜ค์ž‘๋™ํ•˜๋Š” _root_ ๋ชจ๋“ˆ์€ json-schema ์ด๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” ๋น„์ „ํ†ต์ ์ธ AMD ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/kriszyp/json-schema/issues/59

์›นํŒฉ๊ณผ์˜ ์ง€์†์ ์ธ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด http-signature์— ๋Œ€ํ•ด 0.11.x๋กœ ๋‹ค์‹œ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

WebPack ํ…Œ์ŠคํŠธ๋Š” ์•„์ง https://github.com/request/request/pull/1629 ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ๋ˆ„๊ตฌ๋“ ์ง€ ๊ธฐ์—ฌํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๊ทธ ์™ธ์— json-schema ๋Š” ์ฃฝ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ๋ด…์‹œ๋‹ค. ๋˜ํ•œ ํ˜„์žฌ ์š”์ฒญ์€ semver์™€ ํ˜ธํ™˜ ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ package.json์˜ ๊ณ ์ • ๋ฒ„์ „์„ ๊ณ ์ˆ˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@simov ๋ง์”€ ํ•˜์‹  ๋ฌธ์ œ(#1629 Webpack karma config)๊ฐ€ ์ด ๋ฌธ์ œ์™€ ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

Webpack karma ๊ตฌ์„ฑ์€ Wepack์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด ์ด ๋ฒ„๊ทธ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ webpack์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์—์„œ ์ง€์›์„ ์ผ๊ธ‰ ์‹œ๋ฏผ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@simov ์ด๋ฒˆ ์ฃผ๋ง์— Webpack ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :+1:

์ €๋Š” ์ด์ œ ๋ง‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์—…ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋งŒ์ผ์˜ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ๋ชจ๋“  ์ผ์„ ์ œ๋Œ€๋กœ ํ–ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. @pho3nixf1re ๊ฐ€ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ webpack ํ…Œ์ŠคํŠธ๊ฐ€ ์ž‘๋™ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์–ด๋–ค ์‹์œผ๋กœ๋“  ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—ฌ๊ธฐ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. webpack/webpack#138 ์ฆ‰, ์›นํŒฉ ๊ตฌ์„ฑ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ €๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ๊ณ  ์–ด๋–ค ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ํ˜„์žฌ๋กœ์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „ 2.65.0์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ์ œ ์ƒ๊ฐ์ด ๋งž์Šต๋‹ˆ๋‹ค. :) ์†”์งํžˆ ๋งํ•ด์„œ 2.65.0์œผ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๊ณ  ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ์ž˜๋ชปํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2.65.0์œผ๋กœ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. http-signature ํŒจํ‚ค์ง€๋ฅผ ๋ฒ„์ „ 0.11.0์œผ๋กœ ์ˆ˜๋™ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ
  2. ๋‚ด webpack.config.js ํŒŒ์ผ์— ๋‹ค์Œ ์ถ”๊ฐ€ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  node: {
    console: true,
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }

$ npm install --save [email protected] ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์š”์ฒญ ์•ฝ์†๊ณผ ๋…ธ๋“œ 5.3.0 / npm 3.3.12๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@manumax ๊ฐ€ ์–ธ๊ธ‰ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์š”์ฒญ ๋ชจ๋“ˆ์„ 2.65.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๊ณ ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

@singhshashi @theopak ๋ถˆํ–‰ํžˆ๋„ ์ด ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๋ชจ๋“ˆ์„ ์ถ”์ ํ•˜๊ณ  ์‚ญ์ œํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ webpack์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌ ์ค‘์ž…๋‹ˆ๋‹ค(์ €๋Š” ๋งค์šฐ ์ต์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

request-promise๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฒ„์ „์˜ ์š”์ฒญ(์˜ˆ: "request": "^2.34" )์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

node_modules\request-promise\node_modules\request\node_modules\http-signature\node_modules\jsprim\node_modules\json-schema\lib\validate.js

$ npm install --save [email protected] ์ €๋„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

request ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” google-spreadsheet ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์‚ฌ๋žŒ๋“ค์ด ์ด ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•œ ์ˆ˜์ • ํ”„๋กœ๊ทธ๋žจ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. noParse ์ˆ˜์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ ์ฝ”๋“œ์—์„œ Invalid left-hand side in assignment ๋ผ๋Š” ์ƒˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. __webpack_require__(643) = function(ids, factory) {

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰