Signature_pad: Vue+webpack ๋นŒ๋“œ ์˜ค๋ฅ˜

์— ๋งŒ๋“  2018๋…„ 08์›” 22์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: szimek/signature_pad

์ œ๋ชฉ์œผ๋กœ ๋ฌธ์ œ,
๋ทฐ ๋ฒ„์ „: 2.5.15
์›นํŒฉ ๋ฒ„์ „: 3.11.0
npm์ด build:sandbox๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ERROR in 98.145f98ef3cbd11bd2670.js from UglifyJs
Unexpected token: name (Point) [./node_modules/signature_pad/dist/signature_pad.m.js:6,0][98.145f98ef3cbd11bd2670.js:15,6]

  Build failed with errors.

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

@ kevinchung1026 ์–ด์ œ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‘˜๋Ÿฌ๋ณด๊ธฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์›นํŒฉ์— ์ถ”๊ฐ€ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

{
        test: /\.js?$/,
        include: [/node_modules\/signature_pad/],
        use: [
          {
            loader: 'babel-loader',
            options: {
              cacheDirectory: true,
              presets: [['env', { 'modules': false, 'targets': { 'node': 4 } }]]
            }
          }
        ],
      },

์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ๋„ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ˜„

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

ES5 ์ฝ”๋“œ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์ด์ „ ๋ฒ„์ „์˜ UglifyJS๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. signature_pad.m.js ์ฝ”๋“œ๋Š” ES6+ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ UglifyJS ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ•์†Œํ•˜๋ ค๋ฉด ๋จผ์ € Babel์„ ์‚ฌ์šฉํ•˜์—ฌ ES5๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ES5๋กœ ์ปดํŒŒ์ผ๋œ signature_pad.umd.js ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@ kevinchung1026 ์–ด์ œ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‘˜๋Ÿฌ๋ณด๊ธฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์›นํŒฉ์— ์ถ”๊ฐ€ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

{
        test: /\.js?$/,
        include: [/node_modules\/signature_pad/],
        use: [
          {
            loader: 'babel-loader',
            options: {
              cacheDirectory: true,
              presets: [['env', { 'modules': false, 'targets': { 'node': 4 } }]]
            }
          }
        ],
      },

์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ๋„ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ˜„

์ด์ œ ๊ดœ์ฐฎ์•„, thx all

https://github.com/rollup/rollup/wiki/pkg.module ์— ๋”ฐ๋ฅด๋ฉด package.json ํŒŒ์ผ์˜ module ํ•„๋“œ์— ์ง€์ •๋œ ๋ชจ๋“  ํ•ญ๋ชฉ์€ ES2015 ๋ชจ๋“ˆ ๊ตฌ๋ฌธ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋Š” ํŒจํ‚ค์ง€์˜ ์ตœ์†Œ ํ•„์ˆ˜ ๋ฒ„์ „์˜ JS ํ™˜๊ฒฝ ๊ตฌ๋ฌธ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ด ๋ชจ๋“ˆ์„ webpack๊ณผ ํ•จ๊ป˜ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ module ์—์„œ main ์„ ํ˜ธํ•˜๊ธฐ ๋•Œ๋ฌธ)(https://webpack.js.org/configuration/resolve/ ์ฐธ์กฐ). #resolve-mainfields)์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๊ณผ ๋™์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ babel์ด node_modules ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ”„๋กœ์ ํŠธ ๋Œ€์ƒ์œผ๋กœ ์ด ํŠน์ • ๋ชจ๋“ˆ์„

browser ํ•„๋“œ๋ฅผ package.json์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋น ๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋ณด์„ธ์š”!

์ €๋Š” Angular 2์™€ ์ด์ „ ๋ฒ„์ „์˜ UglifyJS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ uglifyJS + signature_pad์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋‹ต๋ณ€์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด webpack ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

{ test: /\.js?$/, include: [/node_modules\/signature_pad/], use: [ { loader: 'babel-loader' } ], }

๊ทธ๋ฆฌ๊ณ  webpack 2์™€ ํ•จ๊ป˜ ์ด์ „ babel loader๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€.json:

"devDependencies": {
....
"babel-core": "^5.4.7",
"๋ฐ”๋ฒจ ๋กœ๋”": "^5.1.3"
}

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