Socket.io-client: 1.4.1์˜ Webpack ๋นŒ๋“œ ๋ฌธ์ œ

์— ๋งŒ๋“  2016๋…„ 01์›” 07์ผ  ยท  57์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: socketio/socket.io-client

1.4.1์—์„œ Webpack์—์„œ ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ฝ”๋“œ์—๋Š” 1.4.0 ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

WARNING in ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /u//WebStormProjects/myProject/node_modules/mySubApp/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib
 @ ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /u//WebStormProjects/myProject/node_modules/mySubApp/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib
 @ ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/Validation.js 10:19-44

ERROR in ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js
Module not found: Error: Cannot resolve module 'tls' in /u//WebStormProjects/myProject/node_modules/mySubApp/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib
 @ ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js 15:10-24

ERROR in ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js
Module not found: Error: Cannot resolve module 'fs' in /u//WebStormProjects/myProject/node_modules/mySubApp/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/lib
 @ ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js 6:9-22

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

ํฌํ•จํ•  ๋•Œ ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

import * as io from "socket.io-client";

๋Œ€์‹ ์—

import * as io from "socket.io";

๊ทธ๋ž˜๋„ #1088๊ณผ ๊ฐ™์€ ํ–‰๋™์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ์ตœ์†Œ ์•ฑ์€ ํ•ด๋‹น ๋ฌธ์ œ ์Šค๋ ˆ๋“œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

_ํŽธ์ง‘: ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. socket.io ๋•Œ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค._

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

+1

๋‚˜๋Š” ์ง€๊ธˆ ์ถ”์ฒœํ•œ๋‹ค:

  module: {
    noParse: ['ws']
  },
  externals: ['ws']

๋” ๋‚˜์€ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€

๊ทธ ์ด์œ ๋Š” npm์— ๊ฒŒ์‹œ๋œ ํŒจํ‚ค์ง€์— <=1.4.0์— ์—†๋Š” webpack.config.js ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋‚˜์ €๋‚˜ ์ €๊ฑด ์–ด๋””์„œ ๋‚˜์˜จ๊ฑฐ์•ผ? ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Browserify ๋นŒ๋“œ๋„ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. 1.4.0์„ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์‹ค์ˆ˜๋กœ ๊ทธ ํŒŒ์ผ์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ธŒ๋ผ์šฐ์ €ํ™”์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ์‹คํ—˜์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

1.4.3 ์•„์›ƒ.

์ฐธ๊ณ  ์‚ฌํ•ญ: files ์— package.json files ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1.4.3์—์„œ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒจ๊ฐ€:

 module: {
    noParse: ['ws']
  },
  externals: ['ws']

๊ทธ๋ž˜๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์•„์ง ๊ณ ์žฅ๋‚ฌ์Šต๋‹ˆ๋‹ค.

@Levino ๋‚˜๋Š” ๋‹น์‹ ์ด ๊ฑฐ๊ธฐ ์—์„œ์™€ ๊ฐ™์ด browserify๊ฐ€ ws๋ฅผ ๋ฌด์‹œ/์ œ์™ธํ•˜๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์€ ์—ด๋ ฌํžˆ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ํŒจํ‚ค์ง€์—์„œ "^1.3.7" ๋Œ€์‹  "~1.3.7" ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ์„œ๋ฒ„์—์„œ ์ด socket.io-client ์Šค๋ ˆ๋“œ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.


1.3.7์„ ์‹คํ–‰ ์ค‘์ด์—ˆ๊ณ  npm์„ ์‚ฌ์šฉํ•˜์—ฌ socket.io-client๋ฅผ 1.4.3์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ฑ์€ socket.io-client๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค(socket.io 1.4.3์œผ๋กœ๋„ ์—…๋ฐ์ดํŠธ๋จ). Windows 7์—์„œ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค.

npm์„ ํ†ตํ•ด ์ œ๊ฑฐ ๋ฐ ๋‹ค์‹œ ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ์‹œ์ž‘ํ•  ๋•Œ socket.io-client ๋ฐ engine.io-client์—์„œ ๊ฒฝ๊ณ  ๋ฐ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๋ฝ๋œ ๋ชจ๋“ˆ์€ npm ํŒจํ‚ค์ง€์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ฒฝ๊ณ :

WARNING in ./~/socket.io-client/~/engine.io-client/~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in C:\Data\captchatheprize.com\dev\gamewww\node_modules\socket.io-client\node_modules\engine.io-clie
nt\node_modules\ws\lib
@ ./~/socket.io-client/~/engine.io-client/~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/socket.io-client/~/engine.io-client/~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in C:\Data\captchatheprize.com\dev\gamewww\node_modules\socket.io-client\node_modules\engine.io-
client\node_modules\ws\lib
@ ./~/socket.io-client/~/engine.io-client/~/ws/lib/Validation.js 10:19-44

์˜ค๋ฅ˜:

ERROR in ./~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js
Module not found: Error: Cannot resolve module 'tls' in C:\Data\captchatheprize.com\dev\gamewww\node_modules\socket.io-client\node_modules\engine.io-client\node
_modules\ws\lib
@ ./~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js 15:10-24

ERROR in ./~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js
Module not found: Error: Cannot resolve module 'fs' in C:\Data\captchatheprize.com\dev\gamewww\node_modules\socket.io-client\node_modules\engine.io-client\node_
modules\ws\node_modules\options\lib
@ ./~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js 6:9-22

@ADumaine 1.3.7์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์—ฌ๊ธฐ์—์„œ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์† ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

@Levino No 1.3.7์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. 1.4.3์€ ์‹ค์ œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœ ์ค‘์ด๋ฉฐ tls์™€ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ 1.4.3์œผ๋กœ ๋‘๊ณ  ์—…๋ฐ์ดํŠธ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋˜๋Œ๋ฆฌ๋ฉฐ ์ค€๋น„ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ๋” ์˜๊ตฌ์ ์ธ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค!

์—„์ฒญ๋‚œ.

1.4.4 ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

1.4.4 ๋‚˜๋„ ๊ทธ๊ฒƒ์„ ๊ณ ์ณค๋‹ค!. @latest์™€ ํ•จ๊ป˜ npm์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๊ฒฝ๊ณ ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”!

์—ฌ์ „ํžˆ ๋‚˜์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ์ตœ์‹  socket.io-client, ws ๋ฐ webpack์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์œผ๋ฉฐ ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /home/test/Projects/B_Components/node_modules/ws/lib
 @ ./~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /home/test/Projects/B_Components/node_modules/ws/lib
 @ ./~/ws/lib/Validation.js 10:19-44

WARNING in ./~/mymodule-services/~/sails.io.js/~/request/lib/optional.js
Critical dependencies:
3:11-26 the request of a dependency is an expression
 @ ./~/mymodule-services/~/sails.io.js/~/request/lib/optional.js 3:11-26
webpack: bundle is now VALID.

@mrvini ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ์†Œ์ผ“๊ณผ ํ•จ๊ป˜ ๋‹ค์Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. [email protected] :

damien<strong i="8">@home</strong>:~/git/socket.io-client$ webpack . bundle.js
Hash: 321bb2158ab30d957364
Version: webpack 1.12.11
Time: 685ms
    Asset    Size  Chunks             Chunk Names
bundle.js  195 kB       0  [emitted]  main
   [0] ./lib/index.js 1.66 kB {0} [built]
   [1] ./lib/url.js 1.61 kB {0} [built]
  [14] ./lib/manager.js 12 kB {0} [built]
  [43] ./lib/socket.js 7.54 kB {0} [built]
  [46] ./lib/on.js 370 bytes {0} [built]
    + 46 hidden modules

@globexdesigns @ADumaine :ํ•˜ํŠธ:

@darrachequesne , ๋‹ค์Œ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋…ธ๋“œ: v4.2.3

sail.io.js ๋ฐ socket.io-client ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋กœ์ปฌ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
sails.io.js: 0.12.2
socket.io ํด๋ผ์ด์–ธํŠธ: 1.4.4
์ด ๋ชจ๋“ˆ์„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ํฌํ•จํ•˜๊ณ  ์›นํŒฉ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.
์›นํŒฉ: 1.12.11
์›นํŒฉ ๊ฐœ๋ฐœ ์„œ๋ฒ„: 1.14.1

webpack .bundle.js๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์•„ ๋ณด์ด์ง€๋งŒ webpack dev ์„œ๋ฒ„๋กœ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@mrvini ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์žฌํ˜„ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

damien<strong i="7">@home</strong>:~/test$ npm install [email protected]
[email protected] node_modules/socket.io-client
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected] ([email protected])
โ”œโ”€โ”€ [email protected] ([email protected])
โ”œโ”€โ”€ [email protected] ([email protected], [email protected], [email protected], [email protected])
โ”œโ”€โ”€ [email protected] ([email protected])
โ””โ”€โ”€ [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
damien<strong i="8">@home</strong>:~/test$ webpack-dev-server --port 9000
Hash: 396f0bfb9d565b6f60f0
Version: webpack 1.12.11
Time: 19ms
webpack: bundle is now VALID.
http://localhost:9000/webpack-dev-server/
webpack result is served from /
content is served from /home/damien/test

image

๋‚ด๊ฐ€ ์—ฌ๊ธฐ์—์„œ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ค! [email protected] ๋Š” [email protected] ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค :grinning: : https://github.com/balderdashy/sails.io.js/blob/master/dependencies/socket.io.min.js# L1

๋”ฐ๋ผ์„œ ๋ฌธ์ œ.

@darrachequesne ์—๊ฒŒ

Critical dependencies:
3:11-26 the request of a dependency is an expression
 @ ./~/mymodule-services/~/sails.io.js/~/request/lib/optional.js 3:11-26

์ฐธ๊ณ ๋กœ ์ด์ƒํ•œ ์ ์€ WS ๋ฒ„์ „ 0.8.1์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค...๋งŽ์€ ์ข…์†์„ฑ์ด ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค...

ERROR in ./~/sails.io.js/~/request/request.js
Module not foun @ ./~/sails.io.js/~/request/request.js 30:10-24

ERROR in ./~/sails.io.js/~/request/~/forever-agent/index.js
Module not found
 @ ./~/sails.io.js/~/request/~/forever-agent/index.js 6:10-24

ERROR in ./~/sails.io.js/~/request/~/forever-agent/index.js
Module not found: Error
 @ ./~/sails.io.js/~/request/~/forever-agent/index.js 7:10-24

ERROR in ./~/sails.io.js/~/request/~/mime/mime.js
Module not found
 @ ./~/sails.io.js/~/request/~/mime/mime.js 2:9-22

ERROR in ./~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js
Module not found
 @ ./~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js 15:10-24

ERROR in ./~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js
Module not found
 @ ./~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js 6:9-22

๋‚˜๋Š” ์ด๊ฒƒ์„ ์•„์ง๋„ ๋ณด๊ณ  ์žˆ๋‹ค:

[0] WARNING in ./~/sails.io.js/~/request/lib/optional.js
[0] Critical dependencies:
[0] 3:11-26 the request of a dependency is an expression
[0]  @ ./~/sails.io.js/~/request/lib/optional.js 3:11-26

ํŒจํ‚ค์ง€:

    "sails.io.js": "^0.13.3",
    "socket.io": "^1.4.4",
    "socket.io-client": "^1.4.4",

์ด ์›นํŒฉ ๊ตฌ์„ฑ๋„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

 module: {
    noParse: ['ws']
  },
  externals: ['ws']

+1

+1

+1

NS:

module: {
  ....
    noParse: ['ws']
  },
  externals: ['ws']

๊ณ ์น  ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ œ ws ๋ชจ๋“ˆ์ด ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

webpack version : 1.13.0
socket.io-client version : 1.4.4

๋ฒ„์ „ 1.4.x ์ดํ›„๋กœ๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ ๋ฒ„์ „์˜ ๊ฐ„๋‹จํ•œ TODO ์•ฑ์ž…๋‹ˆ๋‹ค.

  • ๋…ธ๋“œJS v5.8.0,
  • NPM v3.7.3,
  • ๋ฆฌ์”ฝํฌDB v2.3.2,
  • RethinkDbDash v2.2.18,
  • Aurelia ์ตœ์‹  ๋ฒ ํƒ€,
  • ์†Œ์ผ“.io v1.4.6,
  • Socket.io ํด๋ผ์ด์–ธํŠธ v1.4.6,
  • ws v1.1.0

์›นํŒฉ ๊ตฌ์„ฑ

  module: {
    noParse: ['ws']
  },
  node: {
    tls: "empty"
  },
  externals: ['fs','ws']

์ผ๋ถ€ ์˜ค๋ฅ˜ ๋ฐ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋‹ค์Œ ๊ฒฝ๊ณ  ๋ฐ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

WARNING in ./~/socket.io-client/socket.io.js
Critical dependencies:
1:475-482 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
 @ ./~/socket.io-client/socket.io.js 1:475-482

ERROR in ./~/socket.io-client/package.json
Module parse failed: C:\test\client\node_modules\socket.io-client\package.json Unexpected token (2:9)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:9)
    at Parser.pp.raise (C:\test\client\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\test\client\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\test\client\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\test\client\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\test\client\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\test\client\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\test\client\node_modules\acorn\dist\acorn.js:882:44)
 @ ./~/socket.io/lib/index.js 10:20-55

ERROR in ./~/accepts/~/mime-db/db.json
Module parse failed: C:\test\client\node_modules\accepts\node_modules\mime-db\db.json Unexpected token (2:40)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:40)
    at Parser.pp.raise (C:\test\client\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\test\client\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\test\client\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\test\client\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\test\client\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\test\client\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\test\client\node_modules\acorn\dist\acorn.js:882:44)
 @ ./~/accepts/~/mime-db/index.js 11:17-37

๊ทธ๋Ÿฌ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜๋”๋ผ๋„ ํ”„๋กœ์ ํŠธ์™€ ์†Œ์ผ“์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์—ฌ๋Ÿฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์˜๋„ํ•œ ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Github TODO ์ƒ˜ํ”Œ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

1.4.6์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. @ghiscoding๊ณผ ๋™์ผํ•œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ์—์„œ ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ noParse ๋ฐ externals ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์•ฑ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒŒ์‹œ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์œ ์ผํ•œ ์ข…์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"socket.io": "^1.4.6",
"socket.io-client": "^1.4.6"

์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ํ•˜๋ ค๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋ฉด npm install ๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ npm prepublish

@dbslone ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ–ฅํ›„ ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด webpack์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋Š” CI ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Socket.IO 1.4.6, webpack 1.13.0์—์„œ ๋™์ผํ•œ ๊ฒฝ๊ณ .

WARNING in ./~/socket.io-client/socket.io.js
Critical dependencies:
1:475-482 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
 @ ./~/socket.io-client/socket.io.js 1:475-482

WARNING in ./~/express/lib/view.js
Critical dependencies:
78:29-56 the request of a dependency is an expression
 @ ./~/express/lib/view.js 78:29-56

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /home/rbozan/Git/mooiboymmo/server/node_modules/ws/lib
 @ ./~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /home/rbozan/Git/mooiboymmo/server/node_modules/ws/lib
 @ ./~/ws/lib/Validation.js 10:19-44
var webpack = require("webpack");

module.exports = {
    output: {
        filename: "server.min.js"
    },

    target: "node",

    module: {
        loaders: [
            { test: /\.json$/, loader: "json-loader" }
        ]
    }
};

ํ˜„์žฌ ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? noParse ๋ฐ externals ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฐ”๋กœ ์œ„์— ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. socket.io 1.4.6, ์›นํŒฉ 1.13.1 ์‚ฌ์šฉ

import io from 'socket.io-client/socket.io' ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ( import io from 'socket.io' ์™€ ๋ฐ˜๋Œ€)

๋‚˜๋Š” ์•„์ง๋„ ์–ป๋Š”๋‹ค

WARNING in ./~/socket.io-client/socket.io.js
Critical dependencies:
1:475-482 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.

ํ•˜์ง€๋งŒ ... ์ ์–ด๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค

@WestleyArgentum ์ €๋„ ์‚ฌ์‹ค ์ด๊ฒƒ ๋•Œ๋ฌธ์— ๊ณ ์‹ฌํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, read me์—์„œ ์‚ฌ์šฉ๋ฒ• ์„น์…˜์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ socket.io๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•œ ๊ณ„์† ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

socket.io-client์˜ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ๋นŒ๋“œ๋Š” socket.io ์„œ๋ฒ„์— ์˜ํ•ด /socket.io/socket.io.js๋กœ ์ž๋™ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

๋‚ด html ๋ฐ ๋ฌธ์„œ์˜ ํ—ค๋“œ์— <script type="text/javascript" charset="utf-8" src="/socket.io/socket.io.js"></script> ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ณ  io๋ฅผ ์ „์—ญ์œผ๋กœ ๋…ธ์ถœํ–ˆ์œผ๋ฏ€๋กœ ๊ฐ€์ ธ์˜ฌ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์†Œ์ผ“.IO: 1.4.6
์›นํŒฉ: 1.13.0
Webpack์€ config์—์„œ ๋Œ€์ƒ์œผ๋กœ '๋…ธ๋“œ'๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

WARNING in ./~/socket.io-client/socket.io.js
Critical dependencies:
1:475-482 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
 @ ./~/socket.io-client/socket.io.js 1:475-482

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in C:\maestro\frontend\node_modules\ws\lib
 @ ./~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in C:\maestro\frontend\node_modules\ws\lib
 @ ./~/ws/lib/Validation.js 10:19-44

@omerts ์™€ ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค ... ๋ˆ„๊ตฌ๋“ ์ง€ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ƒ๊ฐํ•ด

์ด๊ฒƒ์€ request/request/issues/1529์™€ ๋ชจํ˜ธํ•˜๊ฒŒ ๊ด€๋ จ๋˜์–ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ websocket ๋ฐ ws ํŒจํ‚ค์ง€ ๋ชจ๋‘์—์„œ ์ด๊ฒƒ์„ ์–ป์Šต๋‹ˆ๋‹ค.

ws ์‚ฌ์šฉํ•˜์—ฌ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์†Œ์ผ“.IO: 1.7.3
์›นํŒฉ: 2.2.1
๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ: ์˜ค๋ฅ˜: 'socket.io-client/package'๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@zweifisch , ๊ตฌ์„ฑ์— json ๋กœ๋”๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค.

์—ฌ์ „ํžˆ "WARNING in ./~/engine.io/lib/server.js Critical ์ข…์†์„ฑ: ์ข…์†์„ฑ ์š”์ฒญ์€ ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค" ๋ฐ ์œ„์˜ ์‚ฌ๋žŒ๋“ค๊ณผ ์œ ์‚ฌํ•œ ๋‹ค๋ฅธ ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” Angular2๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ตฌ์„ฑ์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

const path = require('path');
const ProgressPlugin = require('webpack/lib/ProgressPlugin');
const ProvidePlugin = require('webpack/lib/ProvidePlugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const autoprefixer = require('autoprefixer');
const postcssUrl = require('postcss-url');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

const { NoEmitOnErrorsPlugin, LoaderOptionsPlugin, WatchIgnorePlugin } = require('webpack');
const { BaseHrefWebpackPlugin } = require('@angular/cli/plugins/webpack');
const { CommonsChunkPlugin } = require('webpack').optimize;
const { AotPlugin } = require('@ngtools/webpack');

const nodeModules = path.join(process.cwd(), 'node_modules');
const entryPoints = ["inline","polyfills","sw-register","styles","vendor","main"];
const baseHref = undefined;
const deployUrl = undefined;

module.exports = {
  "devtool": "source-map",
  "resolve": {
    "extensions": [
      ".ts",
      ".js",
      ".json"
    ],
    "modules": [
      "./node_modules"
    ],
    "alias": {
      "config": "config/config.dev.js"
    }
  },
  "resolveLoader": {
    "modules": [
      "./node_modules"
    ]
  },
  "entry": {
    "main": [
      "./app/main.ts"
    ],
    "polyfills": [
      "./app/polyfills.ts"
    ],
    "styles": [
      "./dist/style.dev.css"
    ]
  },
  "output": {
    "path": path.join(process.cwd(), "dist/dev"),
    "filename": "[name].bundle.js",
    "sourceMapFilename": "[name].bundle.js.map",
    "chunkFilename": "[id].chunk.js"
  },
  "module": {
    "rules": [
      {
        "enforce": "pre",
        "test": /\.js$/,
        "loader": "source-map-loader",
        "exclude": [
          /\/node_modules\//
        ]
      },
      {
        "test": /\.json$/,
        "loader": "json-loader"
      },
      {
        "test": /\.html$/,
        "loader": "raw-loader"
      },
      {
        "test": /\.(eot|svg)$/,
        "loader": "file-loader?name=[name].[hash:20].[ext]"
      },
      {
        "test": /\.(jpg|png|gif|otf|ttf|woff|woff2|cur|ani)$/,
        "loader": "url-loader?name=[name].[hash:20].[ext]&limit=10000"
      },
      {
        "exclude": [
          path.join(process.cwd(), "dist/style.dev.css")
        ],
        "test": /\.css$/,
        "loaders": [
          "exports-loader?module.exports.toString()",
          "css-loader?{\"sourceMap\":true,\"importLoaders\":1}",
          "postcss-loader"
        ]
      },
      {
        "exclude": [
          path.join(process.cwd(), "dist/style.dev.css")
        ],
        "test": /\.less$/,
        "loaders": [
          "exports-loader?module.exports.toString()",
          "css-loader?{\"sourceMap\":true,\"importLoaders\":1}",
          "postcss-loader",
          "less-loader"
        ]
      },
      {
        "include": [
          path.join(process.cwd(), "dist/style.dev.css")
        ],
        "test": /\.css$/,
        "loaders": ExtractTextPlugin.extract({
          "use": [
            "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", // Don't make sourceMap true, because it will break fonts loading
            "postcss-loader"
          ],
          "fallback": "style-loader",
          "publicPath": ""
        })
      },
      {
        "include": [
          path.join(process.cwd(), "dist/style.dev.css")
        ],
        "test": /\.less$/,
        "loaders": ExtractTextPlugin.extract({
          "use": [
            "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", // Don't make sourceMap true, because it will break fonts loading
            "postcss-loader",
            "less-loader"
          ],
          "fallback": "style-loader",
          "publicPath": ""
        })
      },
      {
        "test": /\.ts$/,
        "loader": "@ngtools/webpack"
      }
    ],
    /*noParse: [
        /\/ws\//,
        /socket\.io\/lib\/index\.js/
    ]*/
  },
  "plugins": [
    new NoEmitOnErrorsPlugin(),
    new ProgressPlugin(),
    new ProvidePlugin({
        $:"jquery",
        jQuery:"jquery"
    }),
    new HtmlWebpackPlugin({
      "template": "./index.html",
      "filename": "./index.html",
      "hash": false,
      "inject": true,
      "compile": true,
      "favicon": false,
      "minify": false,
      "cache": true,
      "showErrors": true,
      "chunks": "all",
      "excludeChunks": [],
      "title": "Webpack App",
      "xhtml": true,
      "chunksSortMode": function sort(left, right) {
        let leftIndex = entryPoints.indexOf(left.names[0]);
        let rightindex = entryPoints.indexOf(right.names[0]);
        if (leftIndex > rightindex) {
            return 1;
        }
        else if (leftIndex < rightindex) {
            return -1;
        }
        else {
            return 0;
        }
    }
    }),
    new BaseHrefWebpackPlugin({}),
    new CommonsChunkPlugin({
      "name": "inline",
      "minChunks": null
    }),
    new CommonsChunkPlugin({
      "name": "vendor",
      "minChunks": (module) => module.resource && module.resource.startsWith(nodeModules),
      "chunks": [
        "main"
      ]
    }),
    new ExtractTextPlugin({
      "filename": "[name].bundle.css",
      "disable": true
    }),
    new LoaderOptionsPlugin({
      "sourceMap": true,
      "options": {
        "postcss": [
          autoprefixer(),
          postcssUrl({"url": (URL) => {
            // Only convert absolute URLs, which CSS-Loader won't process into require().
            if (!URL.startsWith('/')) {
                return URL;
            }
            // Join together base-href, deploy-url and the original URL.
            // Also dedupe multiple slashes into single ones.
            return `/${baseHref || ''}/${deployUrl || ''}/${URL}`.replace(/\/\/+/g, '/');
        }})
        ],
        "lessLoader": {
          "sourceMap": true
        },
        "context": ""
      }
    }),
    new AotPlugin({
      "mainPath": "app/main.ts",
      "hostReplacementPaths": {},
      "exclude": [],
      "tsConfigPath": "tsconfig.json",
      "skipCodeGeneration": true
    }),
    new BundleAnalyzerPlugin({
      analyzerMode: "static",
      openAnalyzer: false,
      reportFilename: 'analyzer/report.html',
    }),
    new WatchIgnorePlugin([
      path.resolve(__dirname, './dist/dev/analyzer'),
      path.resolve(__dirname, './node_modules'),
    ])
  ],
  "node": {
    "fs": "empty",
    "global": true,
    "crypto": "empty",
    "tls": "empty",
    "net": "empty",
    "process": true,
    "module": false,
    "clearImmediate": false,
    "setImmediate": false
  }
};

ํฌํ•จํ•  ๋•Œ ๊ฒฝ๊ณ ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

import * as io from "socket.io-client";

๋Œ€์‹ ์—

import * as io from "socket.io";

๊ทธ๋ž˜๋„ #1088๊ณผ ๊ฐ™์€ ํ–‰๋™์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ์ตœ์†Œ ์•ฑ์€ ํ•ด๋‹น ๋ฌธ์ œ ์Šค๋ ˆ๋“œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

_ํŽธ์ง‘: ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. socket.io ๋•Œ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค._

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

์ดํ›„ socket.io ๋ฐ webpack 2์—์„œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Module not found: Error: Can't resolve 'socket.io-client/package' in 'xxx/server2/node_modules/socket.io/lib'
์ˆ˜์ •ํ•˜๋ ค๋ฉด socket.io lib/index.js ์†Œ์Šค ํŒŒ์ผ์—์„œ package --> package.json ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

var clientVersion = require('socket.io-client/package.json').version;

์›นํŒฉ.config.js

let path = require('path');
const { GlobCopyWebpackPlugin } = require('@angular/cli/plugins/webpack');

module.exports = {
  devtool: false,

  resolve: {
    modules: [
      'node_modules',
      path.resolve(__dirname, 'src')
    ],
    extensions: ['.ts', '.js'],
    alias: {
      // FIXME: Module not found: Error: Can't resolve 'socket.io-client/package' in '/Developer/Work/iot/hub/server2/node_modules/socket.io/lib'
      // "socket.io-client/package": "empty-module",
      "hiredis": "empty-module",
    }
  },

  target: 'node',

  resolveLoader: {
    modules: [
      'node_modules'
    ]
  },

  entry: {
    main: './src/index',
    vendor: [
      'nest.js',
      'rxjs'
    ]
  },

  output: {
    path: path.resolve(__dirname, './dist/build'),
    filename: '[name].server.bundle.js',
    chunkFilename: "[id].server.chunk.js"
  },

  module: {
    rules: [
      { test: /\.ts$/, use: 'ts-loader' },
      { test: /\.json$/, loader: 'json-loader' },
      { test: /\.html$/, loader: 'raw-loader' },
      { test: /\.(eot|svg)$/, loader: 'file-loader?name=[name].[hash:20].[ext]' },
      { test: /\.js.map/, loader: 'raw-loader' },
    ]
  },

  "plugins": [
    new GlobCopyWebpackPlugin({
      "patterns": [
        "config",
        "data"
      ],
      "globOptions": {
        "cwd": "./",
        "dot": true,
        "ignore": "**/.gitkeep"
      }
    }),
  ]
};

์—ฌ๊ธฐ์—์„œ ์˜ˆ์ œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค: https://github.com/socketio/socket.io/tree/master/examples/webpack-build

์˜ฌ๋ฐ”๋ฅธ ๊ตฌ๋ฌธ์€ import io from 'socket.io-client'; ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ Can't resolve 'socket.io-client/package' ์˜ค๋ฅ˜๋Š” https://github.com/socketio/socket.io/pull/2960์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด์–ด์ฃผ์„ธ์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@darrachequesne

๋‚ด๊ฐ€ ๊ฐ€์ ธ ์˜ค๋ ค๊ณ  ํ•  ๋•Œ

import io from 'socket.io-client'

TS์—์„œ ๋ชจ๋“ˆ์— ๊ธฐ๋ณธ ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ์—†๋‹ค๊ณ  ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

@ํฌ๋ ˆ๋ถ€
typescript์— ๋Œ€ํ•œ ์œ ํ˜•์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
npm i @types/socket.io-client

@kdw3lch

์•„๋‹ˆ์˜ค, ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ฒ„์ „ 1.4.29์— ์œ ํ˜•์ด ์žˆ๊ณ  socket.io-client๋ฅผ 1.7.3์—์„œ 2.0.3์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋‚ด tsconfig.json์ด ์ž˜๋ชป๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@crebuh ์ข€ ๋” ์ž์„ธํžˆ ์ฝ์–ด
import * as io from 'socket.io-client'

webpack ^2.0.0 ๋ฐ ํŒจํ‚ค์ง€์— socket.io๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์ด ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์นด๋ฅด๋งˆ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋‚˜๋Š” ์ด๊ฒƒ์„ ์–ป์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ITO ๋””๋ฒ„๊น…์„ ์–ด๋””๋กœ ๊ฐ€์•ผํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด package.json์˜ ์ข…์†์„ฑ์— socket.io-client๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒดํฌ ์•„์›ƒ ํ•  ๋•Œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
npm -i๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ชจ๋“  ์ข…์†์„ฑ์ด ์„ค์น˜๋˜์—ˆ์ง€๋งŒ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

" 'engine.io-client'๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

socket.io-client๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

npm i socket.io-ํด๋ผ์ด์–ธํŠธ

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