ParaView Glance๋น๋ ์ค์ ์๊ธด ์ค๋ฅ๋ค.
https://github.com/Kitware/glance
์ฌ๊ธฐ์ ์๋์ฒ๋ผ ํ๋ผ๊ณ ํ๋๋ฐ, ์ค๋ฅ๊ฐ ์๊ฒผ๋ค.
$ git clone https://github.com/Kitware/glance.git
$ cd glance/
$ npm install
$ npm run build
$ npm run dev
์ค๋ฅ ๋ฐ์ ๋ถ๋ถ
์ค๋ฅ๊ฐ ์๊ธด ๋ถ๋ถ์ ์๋ ๋๊ตฐ๋ฐ๋ค.
$ npm run build
$ npm run dev
์ค๋ฅ ๋ฐ์ ๋ชจ์ต
npm run build
> glance@0.0.0-semantically-release build > webpack --config build/webpack.dev.config.js [webpack-cli] Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:68:19) at Object.createHash (node:crypto:138:10) at BulkUpdateDecorator.hashFactory (/Users/sark/dev/paraview/glance/node_modules/webpack/lib/util/createHash.js:155:18) at BulkUpdateDecorator.digest (/Users/sark/dev/paraview/glance/node_modules/webpack/lib/util/createHash.js:80:21) at /Users/sark/dev/paraview/glance/node_modules/webpack/lib/DefinePlugin.js:595:38 at _next26 (eval at create (/Users/sark/dev/paraview/glance/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:44:1) at _next4 (eval at create (/Users/sark/dev/paraview/glance/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:97:1) at Hook.eval [as call] (eval at create (/Users/sark/dev/paraview/glance/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:109:1) at Hook.CALL_DELEGATE [as _call] (/Users/sark/dev/paraview/glance/node_modules/tapable/lib/Hook.js:14:14) at Compiler.newCompilation (/Users/sark/dev/paraview/glance/node_modules/webpack/lib/Compiler.js:1053:26) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' }
npm run dev
> glance@0.0.0-semantically-release dev > webpack-dev-server --config build/webpack.dev.config.js node:internal/crypto/hash:68 this[kHandle] = new _Hash(algorithm, xofLen); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:68:19) at Object.createHash (node:crypto:138:10) at BulkUpdateDecorator.hashFactory (/Users/sark/dev/paraview/glance/node_modules/webpack/lib/util/createHash.js:155:18) at BulkUpdateDecorator.digest (/Users/sark/dev/paraview/glance/node_modules/webpack/lib/util/createHash.js:80:21) at /Users/sark/dev/paraview/glance/node_modules/webpack/lib/DefinePlugin.js:595:38 at _next28 (eval at create (/Users/sark/dev/paraview/glance/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:40:1) at _next6 (eval at create (/Users/sark/dev/paraview/glance/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:97:1) at Hook.eval [as call] (eval at create (/Users/sark/dev/paraview/glance/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:113:1) at Hook.CALL_DELEGATE [as _call] (/Users/sark/dev/paraview/glance/node_modules/tapable/lib/Hook.js:14:14) at Compiler.newCompilation (/Users/sark/dev/paraview/glance/node_modules/webpack/lib/Compiler.js:1053:26) { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' }
์ค๋ฅ ๋ฐ์ ์ด์
์ด์ ๋ ๋ด Node๋ฒ์ ์ด ์ด ํ๋ก์ ํธ์ ๋ง์ง ์์์๋ค. ๋ด๊ฐ ์ฌ์ฉํ๊ณ ์๋ ๋ฒ์ ์ v20.8.1์ด์๋๋ฐ, ๋๋ต ์ด ํ๋ก์ ํธ๋ 17๋ฏธ๋ง์ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ ํด๋ณด์ธ๋ค.
์ด ์๋ฌ๋ ์ต์ ๋ฒ์ ์ Node.js(ํนํ Node.js 17 ์ด์)์์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ, OpenSSL 3.0๊ณผ ๊ด๋ จ๋ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ํน์ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋ ๊ฒ์ด ์์ธ์ผ ๊ฐ๋ฅ์ฑ์ด ๋๋ค. Node.js 17 ์ด์์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ช๋ช ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ด ๋นํ์ฑํ๋์ด ์์ด, ์ด์ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ Webpack ๋๋ ๋ค๋ฅธ ํจํค์ง์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค.
ํด๊ฒฐ์ฑ
์๋์ ํด๊ฒฐ์ฑ ์ค ํ๋๋ฅผ ์๋ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ๋ด ๊ฒฝ์ฐ๋ Node ๋ฒ์ ๋ณ๊ฒฝ๋ ๊ท์ฐฎ๊ณ , ์ต๋ํ ๋นจ๋ฆฌ ์คํ์ํค๊ณ ์ถ์ด, 2๋ฒ์ ํจํค์ง ํ์ผ์ ๊ฑด๋๋ฆฌ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ๋ค. ํ๋ก์ ํธ์ ์๊ตฌ ์ฌํญ๊ณผ ํ๊ฒฝ์ ๋ฐ๋ผ ์ ํฉํ ๋ฐฉ๋ฒ์ ์ ํํ์๊ธธ. 3, 4๋ฒ์ ์ถ์ธก์ฑ์ด๋ผ ์ฐธ๊ณ ๋ง ํ์๊ธธ ๋ฐ๋๋ค.
1. Node.js ๋ฒ์ ๋ค์ด๊ทธ๋ ์ด๋:
Node.js์ ์ด์ ๋ฒ์ (์: 16.x)์ผ๋ก ๋ค์ด๊ทธ๋ ์ด๋. ์ด์ ๋ฒ์ ์์๋ ํด๋น ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ ์ ์๋ค.
2. ํ๊ฒฝ ๋ณ์ ์ค์ :
Node.js์์ OpenSSL 3.0๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ฅ์ ๋ค์ ํ์ฑํํ๋ ค๋ฉด ํ๊ฒฝ ๋ณ์ NODE_OPTIONS๋ฅผ ์ค์ ํ ์ ์๋ค. ํฐ๋ฏธ๋์์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ๊ฑฐ๋, ํด๋น ํ๊ฒฝ ๋ณ์๋ฅผ ํ๋ก์ ํธ์ npm ์คํฌ๋ฆฝํธ์ ์ถ๊ฐํ๋ค:
export NODE_OPTIONS=--openssl-legacy-provider
๋๋ package.json์ ์คํฌ๋ฆฝํธ ์น์
์ ๋ค์๊ณผ ๊ฐ์ด NODE_OPTIONS=--openssl-legacy-provider
๋ถ๋ถ์ ์ถ๊ฐํ ์ ์๋ค:
"scripts": {
"build": "NODE_OPTIONS=--openssl-legacy-provider webpack --config build/webpack.dev.config.js",
"dev": "NODE_OPTIONS=--openssl-legacy-provider webpack-dev-server --config build/webpack.dev.config.js",
}
3. Node.js ๋ฒ์ ์
๋ฐ์ดํธ:
ํด๋น ๋ฌธ์ ๊ฐ ์์ ๋ Node.js์ ์ ๋ฒ์ ์ด ์๋ค๋ฉด, Node.js๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ค.
4. Webpack ๋ฐ ๊ด๋ จ ์์กด์ฑ ์
๋ฐ์ดํธ:
Webpack๊ณผ ๊ด๋ จ๋ ์์กด์ฑ์ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ค.
๋ญ ํ๋ ํด๊ฒฐํ๋๋ฐ, ํญ์ ์ ๋จน๋ ๊ฒ ์์ง ๋ด๊ณต์ ํ์ฐธ ๋ ์์์ผ ํ ๋ฏ ์ถ๋ค. ํ์ดํ !
๋๊ธ