๋ด๋ถ์ ์ผ๋ก JSDOM์ ์ฌ์ฉํ๋ ์๋ฒ ์์ฉ ํ๋ก๊ทธ๋จ์ ์น ํฉ๊ณผ ๋ฒ๋ค๋ก ๋ฌถ์ ๋ ๋ค์ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค.
WARNING in .../node_modules/jsdom/lib/jsdom/utils.js
203:21-40 Critical dependency: the request of a dependency is an expression
๋ฌธ์ ์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
["canvas", "canvas-prebuilt"].some(moduleName => {
try {
exports.Canvas = require(moduleName);
์๋ฒ ์ฝ๋๋ฅผ ๋ฒ๋ค๋ก ๋ฌถ๋ ๊ฒ์ด ๋งค์ฐ ์ผ๋ฐ์ ์ด์ง ์์ ์๋ ์์ง๋ง 266MB( src/
๋ฐ node_modules/
)์์ ๋จ์ผ 6MB JS ํ์ผ(์ ๊ฒฝ์ฐ)๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํญ์ ์ ์ ์ผ๋ก ๋ค์ ์์ฑํ์๊ฒ ์ต๋๊น? ์๋๋ฉด ์ค์ ๋ก ๊ฐ๋ฅํ ๋ชจ๋์ด ์ถ๋ก ๋ ์ ์๋ค๋ ๊ฒ์ ๊ฐ์งํ ์ ์๋ ๋ฒ๋ค๋ฌ์ ๊ฒฐํจ์ผ๋ก ์ด๊ฒ์ ๋ณด์ญ๋๊น?
(๋ฆฌํฐ๋ด require
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ if
๋ก ๋ค์ ์์ฑํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก canvas
๋๋ canvas-prebuilt
๋ ๋ค ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ์๋ ์ฌ์ ํ ์์ธ๋ฅผ ์ถ๊ฐํด์ผ ํ ์ ์์ต๋๋ค. , ๊ทธ๋ฌ๋ ์ ์ด๋ ๋ฌธ์ ๋ ๋ช
์์ ์ผ๋ก ์ฒ๋ฆฌ๋์์ ๊ฒ์
๋๋ค(์ฌ์ฉ์๋ ์ด๋ฅผ ์ฌ์ฉํ์ง ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค).
์๋์, ์ฃ์กํฉ๋๋ค. ์นํฉ์ ์ง์๋์ง ์์ต๋๋ค.
@domenic ์นํฉ์ด ์ง์๋์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ง๊ธ๊น์ง ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ฒ๋ค๋ฌ์ ๋๋ค.
jsdom์ด ์ฌ์ฉํ๋ ์ฝ๋ ํจํด์ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@domenic ์ด๋ค ์ข ๋ฅ์ ์ฝ๋ ํจํด์ ๋๊น? webpack์ ์์ฆ ํญ์ ๋ง์ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋ฌด์ํ ๋ง์ ํ๋ฌ๊ทธ์ธ์ด ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ webpack๊ณผ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ข์ ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ผ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค. :NS
๋๋ ์ด๋ฏธ webpack๊ณผ ํจ๊ป jsdom์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ต์ํ ๋ด๊ฐ ์ฌ์ฉํ๋ ๋ฌธ์/dom ๋ฉ์๋๋ ์ ์๋ํ๊ณ ์์ต๋๋ค. ์์ ๊ฒฝ๊ณ ๋๋ฌธ์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋๋ mocha-webpack
๊ฐ ๊ฒฝ๊ณ ๋ฅผ ์ต์ ํ๊ณ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์ง๊ธ์์์ผ ๊ทธ๊ฒ์ ์์์ฐจ๋ ธ๊ณ , ๊ทธ๊ฒ์ ๋์ง ํ์ ๊นจ๋ฌ์์ต๋๋ค. ๊ทธ๋ฌ๋ mocha-webpack์ด ์๋ฌด ๊ฒ๋ ์ต์ ํ์ง ์๊ณ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ๋ช
ํ ์ผ์ ํ๊ณ ์์ ์ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ๊ทธ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ๋ฐ์ดํธ! :๋ค์ด๊ฐ ์:
์์ ์ ๋งค์ฐ ๊ฐ๋จํ๋ฉฐ mocha-webpack
๋ฌธ์ ์์ ์ป์์ต๋๋ค: https://github.com/zinserjan/mocha-webpack/issues/6#issuecomment -213957809. ๋ํ ์ด ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ์ ๊ถ์ฅํ๋ https://github.com/zinserjan/mocha-webpack/blob/master/docs/installation/webpack-configuration.md ๋ฌธ์๊ฐ ์์ต๋๋ค.
const nodeExternals = require('webpack-node-externals');
module.exports = {
externals: [nodeExternals()],
// etc configs here
}
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ๋ฐ์ดํธ! :๋ค์ด๊ฐ ์:
์์ ์ ๋งค์ฐ ๊ฐ๋จํ๋ฉฐ
mocha-webpack
๋ฌธ์ ์์ ์ป์์ต๋๋ค: https://github.com/zinserjan/mocha-webpack/issues/6#issuecomment -213957809. ๋ํ ์ด ํ๋ฌ๊ทธ์ธ ์ฌ์ฉ์ ๊ถ์ฅํ๋ https://github.com/zinserjan/mocha-webpack/blob/master/docs/installation/webpack-configuration.md ๋ฌธ์๊ฐ ์์ต๋๋ค.