μ°Έκ³ : μ§μ μ§λ¬Έμ κ²½μ° λ€μ μ±λ μ€ νλλ₯Ό μ¬μ©νμμμ€: stackoverflow λλ slack
λλ socket.ioμ λ§μ€ν° λΈλμΉμμ μμ νλ‘μ νΈ webpack-build-server λ₯Ό λ€μ΄λ‘λνκ³ npm install
λ₯Ό μ€ννμ¬ μ’
μμ±μ μ€μΉνκ³ λ§μ§λ§μΌλ‘ npm run build
λ₯Ό μ€ννμ¬ μλ²λ₯Ό λ²λ€λ‘ μλνμ§λ§ webpackμ΄ μ 곡ν©λλ€. λ€μ μ€λ₯:
ERROR in ./~/engine.io/lib/server.js
Module not found: Error: Can't resolve 'uws' in '/Users/ZehuaChen/Downloads/socket.io-master/examples/webpack-build-server/node_modules/engine.io/lib'
@ ./~/engine.io/lib/server.js 107:27-41
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./lib/index.js
examples/webpack-build-server
λ‘ μ΄λ ;npm install
μ€ν ;npm run build
μ€ν ;μ°Έκ³ : λΉ λ₯Έ λ΅λ³μ μ»λ κ°μ₯ μ’μ λ°©λ²μ μλ₯Ό λ€μ΄ λ€μ λ°μ΄μ¬λ¦° μ λΆκΈ°νμ¬ μ€ν¨ν ν μ€νΈ μ¬λ‘λ₯Ό μ 곡νλ κ²μ λλ€.
server.js νμΌμ dist
ν΄λμ μμ±λμ΄μΌ ν©λλ€.
μ΄κ²μ λ΄ ν°λ―Έλμ μΈμ λ κ²μ λλ€.
````
[email protected] λΉλ /Users/ZehuaChen/Downloads/socket.io-master/examples/webpack-build-server
μΉν© --config ./support/webpack.config.js
ν΄μ: 997a1fd1ee0b1b064485
λ²μ : μΉν© 2.7.0
μκ°: 468ms
μμ° ν¬κΈ° μ²ν¬ μ²ν¬ μ΄λ¦
server.js 401 kB 0 [λ°©μΆλ¨] [ν°] κΈ°λ³Έ
[0] ./~/debug/src/index.js 263λ°μ΄νΈ {0} [λΉλλ¨]
[7] ./~/socket.io-parser/index.js 8.04 kB {0} [λΉλλ¨]
[16] ./~/engine.io/lib/socket.js 11.6kB {0} [λΉλλ¨]
[17] ./~/engine.io/lib/transport/index.js 509λ°μ΄νΈ {0} [λΉλλ¨]
[19] ./~/socket.io-parser/is-buffer.js 712λ°μ΄νΈ {0} [λΉλλ¨]
[20] ./~/socket.io/lib/namespace.js 5.81kB {0} [λΉλλ¨]
[31] ./~/socket.io/lib/index.js 12.9kB {0} [λΉλλ¨]
[32] ./lib/index.js 474λ°μ΄νΈ {0} [λΉλλ¨]
[43] ./~/engine.io/lib/engine.io.js 2.38kB {0} [λΉλλ¨]
[44] ./~/engine.io/lib/server.js 15.1kB {0} [λΉλλ¨]
[58] ./~/socket.io-adapter/index.js 5.44 kB {0} [λΉλλ¨]
[59] ./~/socket.io-client/package.json 3.19kB {0} [λΉλλ¨]
[61] ./~/socket.io/lib 160λ°μ΄νΈ {0} [λΉλλ¨]
[62] ./~/socket.io/lib/client.js 5.9kB {0} [λΉλλ¨]
[63] ./~/socket.io/lib/parent-namespace.js 917λ°μ΄νΈ {0} [λΉλλ¨]
+ 59κ°μ μ¨κ²¨μ§ λͺ¨λ
./~/ws/lib/Validation.jsμ κ²½κ³
λͺ¨λμ μ°Ύμ μ μμ: μ€λ₯: '/Users/ZehuaChen/Downloads/socket.io-master/examples/webpack-build-server/node_modules/ws/lib'μμ 'utf-8-validate'λ₯Ό νμΈν μ μμ΅λλ€.
@ ./~/ws/lib/Validation.js 10:22-47
@ ./~/ws/lib/Receiver.js
@ ./~/ws/index.js
@ ./~/engine.io/lib/server.js
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./lib/index.js
./~/ws/lib/BufferUtil.jsμ κ²½κ³
λͺ¨λμ μ°Ύμ μ μμ: μ€λ₯: '/Users/ZehuaChen/Downloads/socket.io-master/examples/webpack-build-server/node_modules/ws/lib'μμ 'bufferutil'μ νμΈν μ μμ΅λλ€.
@ ./~/ws/lib/BufferUtil.js 35:21-42
@ ./~/ws/lib/Receiver.js
@ ./~/ws/index.js
@ ./~/engine.io/lib/server.js
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./lib/index.js
./~/socket.io/lib/index.jsμ κ²½κ³
113:11-32 μ€μν μ’
μμ±: μ’
μμ± μμ²μ ννμμ
λλ€.
./~/engine.io/lib/server.jsμ μ€λ₯
λͺ¨λμ μ°Ύμ μ μμ: μ€λ₯: '/Users/ZehuaChen/Downloads/socket.io-master/examples/webpack-build-server/node_modules/engine.io/lib'μμ 'uws'λ₯Ό νμΈν μ μμ΅λλ€.
@ ./~/engine.io/lib/server.js 107:27-41
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./lib/index.js
npm μ€λ₯! μ½λ ELIFECYCLE
npm μ€λ₯! μ€λ₯ λ²νΈ 2
npm μ€λ₯! [email protected] λΉλ: webpack --config ./support/webpack.config.js
npm μ€λ₯! μ’
λ£ μν 2
npm μ€λ₯!
npm μ€λ₯! [email protected] λΉλ μ€ν¬λ¦½νΈμμ μ€ν¨νμ΅λλ€.
npm μ€λ₯! μ΄κ²μ μλ§λ npmμ λ¬Έμ κ° μλ κ²μ
λλ€. μμ μΆκ° λ‘κΉ
μΆλ ₯μ΄ μμ μ μμ΅λλ€.
npm μ€λ₯! μ΄ μ€νμ μ 체 λ‘κ·Έλ λ€μμμ μ°Ύμ μ μμ΅λλ€.
npm μ€λ₯! /Users/ZehuaChen/.npm/_logs/2018-05-17T21_30_47_624Z-debug.log
````
uws
ν¨ν€μ§λ₯Ό μλμΌλ‘ μ€μΉνλλ° μλνλ κ² κ°μ΅λλ€. λ κ°μ μ΄λ³΄μκ° μ΄κ²μ μμλ΄λ κ²μ μ λ§ μ΄λ ΅κΈ° λλ¬Έμ λκ΅°κ° README νμΌμ΄λ package.jsonμ μ
λ°μ΄νΈν μ μμ΅λκΉ?
λν λμΌν κ²½κ³ κ° νμλ©λλ€.
WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Can't resolve 'bufferutil' in '/Users/Ian/Code/ianpaschal/forge-server/node_modules/ws/lib'
@ ./~/ws/lib/BufferUtil.js 35:21-42
@ ./~/ws/lib/Sender.js
@ ./~/ws/index.js
@ ./~/engine.io/lib/server.js
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./src/server.js
WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Can't resolve 'utf-8-validate' in '/Users/Ian/Code/ianpaschal/forge-server/node_modules/ws/lib'
@ ./~/ws/lib/Validation.js 10:22-47
@ ./~/ws/lib/Receiver.js
@ ./~/ws/index.js
@ ./~/engine.io/lib/server.js
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./src/server.js
WARNING in ./~/socket.io/lib/index.js
113:11-32 Critical dependency: the request of a dependency is an expression
// package.json
"webpack": "^2.7.0",
"socket.io": "^2.1.0",
ν΄κ²°νμ ¨λμ? κ°μ λ¬Έμ κ° μμ΅λλ€..
μλμ. λ¨μ§ κ²½κ³ μΌ λΏμ΄λ―λ‘ λͺ»μκΈ΄ μ½μ μΆλ ₯ μ΄μΈμ ν¨κ³Όλ μμ§λ§ μ¬μ ν μμ΅λλ€.
npm start
μμ λ©μΆμ§ μκ³ μ€λ₯λ₯Ό 무μνμμμ€.
λ
Έλ μ μ© μΌλ‘ μ»΄νμΌνλ κ²½μ° μ΅μ
μ μΆκ°ν΄μΌ μ€λ₯κ° μ¬λΌμ§λλ€.
κ΅¬μ± νμΌμ λ€μμ μΆκ°ν΄μΌ ν©λλ€.
{
...
target: 'node'
...
}
κ·Έλ μ§ μμΌλ©΄ μΉ μ μ© μΌλ‘ μ»΄νμΌνλ μ€μ΄λ―λ‘ μ΅μ
μ μ λ¬ν νμκ° μμ΅λλ€(default='web')(λλ target='web'). κ·Έλ¬λ 'uws'λ λ²λ€μμ μλνμ§ μμΌλ―λ‘ μ μΈν΄μΌ ν©λλ€. λΈλΌμ°μ .
μ΄ κ²½μ°μλ λ€μμ μΆκ°ν΄μΌ ν©λλ€.
{
...
externals: {
uws: "uws"
},
...
}
@pirix-gh μ΄κ²μ λ¬Έμ κ° μλ κ² κ°μ΅λλ€.
λ΄ κ΅¬μ±μμ :
const Webpack = require( "webpack" );
module.exports = {
target: "node",
node: {
__dirname: true,
__filename: true,
},
entry: {
main: "./src/server.js",
},
plugins: [
new Webpack.EnvironmentPlugin( [
"NODE_ENV",
] ),
new Webpack.IgnorePlugin( /uws/ )
],
};
@ianpaschal μ’μ, κ·Έλ λ€λ©΄ λ€λ₯Έ νλ‘μ νΈλ‘ νλ‘μ νΈλ₯Ό κ°μ Έμ€κ³ μμ΅λκΉ?
_νλ‘μ νΈ_1_
_νλ‘μ νΈ_2_
μΉν©: Project_2 μ»΄νμΌ
-> Project_2μμ λͺ¨λμ μ°Ύμ μ μμ΅λλ€.
κ·Έλ¦¬κ³ μ΄κ²μ Project_2μμ μ’
μμ±μ μ‘°ννμ§λ§ Project_1μ΄ μ’
μμ±μ 보μ νκ³ μκΈ° λλ¬Έμ λ°μν μ μμ΅λλ€.
μ΄μ λν ν΄κ²°μ±
μ λΉμ μ΄ νλ κ²μ²λΌ λλ½λ μ’
μμ±μ μ€μΉνλ κ²μ
λλ€.
λλ Project_1μ κ²μν λ€μ Project_2μ μ’
μμ±μΌλ‘ κ°μ Έμ΅λλ€.
μ΄λ κ² νλ©΄ μμμ μ 곡ν μ€λ₯λ₯Ό μ¬νν μ μμ΅λλ€.
λ¬Έμ κ° λ°μν μ΄μ λ₯Ό μ€λͺ νκ³ λ€λ₯Έ λ°©λ²μ μ 곡ν΄μ£Όμ μ κ°μ¬ν©λλ€!
@Zehua-Chen Pleasure, λ¬Έμ κ° ν΄κ²°λκΈ°λ₯Ό λ°λλλ€. νμ κ²μνλ κ²μ΄ μΌλ§λ μ±κ°μ μΌμΈμ§ μκ³ μμΌλ―λ‘... λΆν νλ‘μ νΈμ κ²½μ° κ°λ° μ€μ λ€μμ μ¬μ©ν μ μμ΅λλ€.
npx @babel/node src/index.js
λλ
node -r @babel/register src/index.js
λλ λ²μ μ λ°λΌ
npx babel-node src/index.js
λλ
node -r babel-register src/index.js
μ’
μμ±μ μ¬λ°λ₯΄κ² ν΄κ²°νκ³ μ€ν νμ§λ§ νλ‘λμ
μ μ ν©νμ§ μλ€λ κ²μ κΈ°μ΅νμμμ€.
νλ‘λμ
μμ μμ
νλ κ²½μ° ν¨ν€μ§λ₯Ό λ³λλ‘ κ²μνκ³ λμ npmμ μ¬μ©ν΄μΌ ν©λλ€.
λλ μ§κΈ λ§μ μ°κ΅¬λ₯Ό νμ§λ§ μ¬μ ν λ¬Έμ μ ν΄κ²° λ°©λ²μ μ΄ν΄νμ§ λͺ»νμ΅λλ€.
λλ socket.ioλ₯Ό μ¬μ©νκ³ webpackμΌλ‘ λΉλνλ λ¨μΌ νλ‘μ νΈ λ₯Ό κ°μ§κ³ μμΌλ©° νμ λμΌν λ¬Έμ λ‘ μ€ν¨ν©λλ€.
ERROR in ./node_modules/engine.io/lib/server.js
Module not found: Error: Can't resolve 'uws' in 'xxxxxxxx/node_modules/engine.io/lib'
@ ./node_modules/engine.io/lib/server.js 107:27-41
@ ./node_modules/engine.io/lib/engine.io.js
@ ./node_modules/socket.io/lib/index.js
ν¨ν€μ§.json
"dependencies": {
"express": "^4.16.3",
"socket.io": "^2.1.1"
},
"devDependencies": {
"tslint": "^5.11.0",
"typescript": "2.9.2",
"uglifyjs-webpack-plugin": "^1.2.7",
"webpack": "^4.16.4",
"webpack-cli": "^3.1.0"
},
μΉν©.config.js
const path = require('path');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
target: 'node',
mode: 'development',
entry: './dist/index.js',
output: {
filename: 'index.js',
path: path.resolve(__dirname, 'dist/00-bundle')
},
optimization: {
minimizer: [
new UglifyJsPlugin()
]
}
};
@btxtiger λ Έλλ‘ μμ ν λ μ’ μμ±μ λ²λ€λ‘ λ¬Άμ΄μλ μ λκΈ° λλ¬Έμ λλ€(package.jsonκ³Ό ν¨κ» μ€μΉλ¨). μΉμ© νλ‘μ νΈλ₯Ό λ²λ€λ‘ λ¬ΆκΈ° λλ¬Έμ webpack μ κΈ°λ³Έ λμμ λλ€ .
μ΄κ²μ confμ μΆκ°νλ©΄ package.json μ μ½μ΄ μ’ μμ±μ μ μΈν©λλ€.
const nodeExternals = require('webpack-node-externals');
module.exports = {
...
mode: 'development',
...
externals: [nodeExternals({
modulesFromFile: true
})];
...
}
μ΄λ κ²νλ©΄ (κ±°μ) κ²μ κ°λ₯ν ν¨ν€μ§λ₯Ό μ»μ μ μμ΅λλ€.
@pirix-gh κ°μ¬ν©λλ€! μκ² μ΅λλ€. package.jsonμ ν΅ν΄ λͺ¨λμ μ€μΉ/μ λ°μ΄νΈν νμ μμ΄ μλ²μ νΈμνκΈ°λ§ νλ©΄ λλ μ 체 λ²λ€μ λ§λ€ μ μκΈ°λ₯Ό λ°λμ΅λλ€. λλ μ΄κ²μ΄ μ€μ λ‘ κ°λ₯νμ§ νμ€νμ§ μμ΅λλ€. socket.ioμ μ€λ₯λ₯Ό μ μΈνκ³ λ μλνλ κ² κ°μ΅λλ€.
@btxtiger λ‘컬μμ ν μ μμ΅λλ€. μ’
μμ± κ·μΉμ μλ°νλ―λ‘ NPMμ κ²μνμ§ λ§μμμ€.
uwsλ Node.jsλ‘ λνλ C++ λͺ¨λ μ΄κΈ° λλ¬Έμ npm i
λ₯Ό μ¬μ©ν λ μ¦μμμ μ»΄νμΌλ©λλ€.
λ°λΌμ νμ€ jsμ²λΌ λ²λ€λ‘ μ 곡λ μ μμΌλ©° λμ μ€μΉν΄μΌ ν©λλ€(μ΄λ OSμ λν μ»΄νμΌμ νΈλ¦¬κ±°ν¨ ).
κ·Έλ κΈ° λλ¬Έμ νμ NPM μ’
μμ± μμ€ν
μ μ¬μ©ν΄μΌ νλ©° κ·Έλ° μ§λ¬Έμ μ€μ€λ‘μκ² ν νμκ° μμ΅λλ€.
μ¬μ ν μ΄λ κ² νλ €λ©΄ uwsλ₯Ό μ μΈν΄ 보μμμ€.
{
...
externals: {
uws: "uws"
},
...
}
@pirix-gh νλ₯ν©λλ€. μ€λͺ ν΄μ£Όμ μ κ°μ¬ν©λλ€. webpackμΌλ‘ λΉλνλ λμ λͺ¨λ dev μ’ μμ±μ μ μΈνκ³ μμνκΈ° μ μ νμ npm installμ μ€ννλ μ΅μ νλ package.jsonμΌλ‘ μ΄λνμ΅λλ€. νμ¬λ‘μλ μ΅κ³ μ μ루μ μΈ κ² κ°μ΅λλ€.
μμ ν λλ²κΉ
ν μκ°μ΄ μμμ§λ§ karma^2.0.0
μμ karma^3.0.0
λ‘ μ
κ·Έλ μ΄λν λ webpack λΉλμμ λ€μ μ€λ₯κ° λ°μνμ΅λλ€.
Module not found: Error: Can't resolve 'uws'
λ°λΌμ Karmaλ₯Ό 2.0.0
λ‘ μ μ§νλ κ²μ΄ ν΄κ²°μ±
μ΄μμ΅λλ€.
socket.ioλ₯Ό κ°μ Έμ€κ±°λ μμ²ν λλ§λ€ μ΄ λ¬Έμ κ° λ°μν©λλ€. μλμΌλ‘ uws μ€μΉλ₯Ό μλνμ§λ§ Nodeμμ μ¬μ ν uwsλ₯Ό ν΄κ²°ν μ μμ΅λλ€.
μ λ μ΄ λ¬Έμ κ° λ°μνλλ° μ΄λ»κ² ν΄κ²°ν΄μΌ ν μ§ λͺ¨λ₯΄κ² μ΅λλ€.
Webpack/νλ‘ νΈ μλ μ¬λ¬λΆ, ν΄λΌμ΄μΈνΈ μΈ‘ μ±μμ μΌλΆ WebSocket μλ²μ μ°κ²°νκΈ° μν΄ SocketIOκ° νμν κ²½μ° λ€μμ μ¬μ©ν μ μμ΅λλ€. https://github.com/socketio/socket.io-client
λ΄ Module not found: Error: Can't resolve 'uws'
λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€!
κ·Έλμ λλ λκ°μ λ¬Έμ λ₯Ό κ²ͺμμ§λ§ λ§€μ° λ€λ₯Έ μ΄μ μμ΅λλ€. νμ¬ npm uwsμμ μ΅μ socket.io μλ² ν¨ν€μ§λ₯Ό μ€μΉν λ μ°Ύμ μ μμ΅λλ€.
μ΄κ²μ uwsμ κ²μμκ° μ΅κ·Όμ μ€μ μ½λ Dλ₯Ό λͺ¨λ μμ νλ λΉ ν¨ν€μ§λ₯Ό μ λ‘λνκΈ° λλ¬Έμ λ°μν©λλ€.
νκ΄΄λμ§ μμ λ§μ§λ§ 릴리μ€λ₯Ό μ€μΉνμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
μμ¬ μΆκ° [email protected]
npm μ€μΉ [email protected]
λΉμ΄ μκ±°λ μ¬μ©λμ§ μλ ν¨ν€μ§ λ§ν¬: https://www.npmjs.com/package/uws
redditμ ν΅μ°°λ ₯ μλ λ°°κ²½ μ 보: https://www.reddit.com/r/node/comments/91kgte/uws_has_been_deprecated/
λ¬΄μ¨ μΌμ΄ μμλμ§ νμ νλ λ° μκ°μ΄ κ±Έλ¦¬κ³ μ΄ λ¬Έμ κ° λκ΅°κ°λ₯Ό ꡬν μ μκΈ°λ₯Ό λ°λλλ€.
μ μκ²λ CLI λλ ꡬμ±μ ν΅ν --target node
κ° ν΅μ¬μ΄μκ³ μ λͺ¨λ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
κ·Έλμ λλ λκ°μ λ¬Έμ λ₯Ό κ²ͺμμ§λ§ λ§€μ° λ€λ₯Έ μ΄μ μμ΅λλ€. νμ¬ npm uwsμμ μ΅μ socket.io μλ² ν¨ν€μ§λ₯Ό μ€μΉν λ μ°Ύμ μ μμ΅λλ€.
μ΄κ²μ uwsμ κ²μμκ° μ΅κ·Όμ μ€μ μ½λ Dλ₯Ό λͺ¨λ μμ νλ λΉ ν¨ν€μ§λ₯Ό μ λ‘λνκΈ° λλ¬Έμ λ°μν©λλ€.
νκ΄΄λμ§ μμ λ§μ§λ§ 릴리μ€λ₯Ό μ€μΉνμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
μμ¬ μΆκ° [email protected]
npm μ€μΉ [email protected]
λΉμ΄ μκ±°λ μ¬μ©λμ§ μλ ν¨ν€μ§ λ§ν¬: https://www.npmjs.com/package/uws
redditμ ν΅μ°°λ ₯ μλ λ°°κ²½ μ 보: https://www.reddit.com/r/node/comments/91kgte/uws_has_been_deprecated/
λ¬΄μ¨ μΌμ΄ μμλμ§ νμ νλ λ° μκ°μ΄ κ±Έλ¦¬κ³ μ΄ λ¬Έμ κ° λκ΅°κ°λ₯Ό ꡬν μ μκΈ°λ₯Ό λ°λλλ€.