ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

https://choi95.tistory.com/131

 

favicons-Webpack-plugin์„ ํ†ตํ•ด favicons ์ด๋ฏธ์ง€ ์ ์šฉํ•˜๊ธฐ

๋ฌธ์ œ ํ”„๋กœ์ ํŠธ ๋„์ค‘ Webpack์„ ํ†ตํ•ด ๋ฒˆ๋“ค๋ง ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ์„œ๋ฒ„์— ๋„์šฐ๋‹ˆ html head ํƒœ๊ทธ ๋‚ด์— ์ ์šฉํ–ˆ๋˜ favicons ์ด๋ฏธ์ง€๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. favicons ์ด๋ฏธ์ง€์— ์‚ฌ์šฉ๋˜๋Š” ์†Œ์Šค์˜ ํ™•์žฅ์ž๋Š”

choi95.tistory.com


์ด์ „ ํฌ์ŠคํŒ…์—์„œ meta ๋ฐ์ดํ„ฐ์— ํŒŒ๋น„์ฝ˜ ์ด๋ฏธ์ง€ ์†Œ์Šค๋ฅผ patchํ•˜๊ธฐ ์œ„ํ•ด favicons-webpack-plugin์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.


ํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌ๊ฒŒ 2๊ฐ€์ง€ ์›์ธ์œผ๋กœ ์ด๋ฅผ copy-webpack-plugin์œผ๋กœ ๋Œ€์ฒดํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

  1. ํ…Œ์ŠคํŠธ ์šฉ๋„๋กœ ์ง€์ •ํ•œ favicon ์ด๋ฏธ์ง€๊ฐ€ path๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ๋„ ๊ทธ๋Œ€๋กœ ์›น ์ƒ์—์„œ ๋žœ๋”๋ง๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. build๋ฅผ ํ•  ๊ฒฝ์šฐ assets ํด๋” ๋‚ด์—๋Š” ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•œ ์ด๋ฏธ์ง€ ์†Œ์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์ €์žฅ์ด ๋˜์–ด ์žˆ๋Š”๋ฐ dev server open์„ ํ•˜์—ฌ ์›น ์ƒ์—์„œ ํ™•์ธํ•ด ๋ณด๋ฉด ๋ฐ”๋€Œ๊ธฐ ์ง์ „์˜ ์ด๋ฏธ์ง€ ์†Œ์Šค๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚จ์•„์žˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ์ •ํ™•ํ•œ ์›์ธ์„ ์ฐพ์ง€ ๋ชปํ•˜์˜€๋Š”๋ฐ ๋งŒ์•ฝ์— ์ฐพ๊ฒŒ ๋˜๋ฉด ์ดํ›„ ์ถ”๊ฐ€ ํฌ์ŠคํŒ…์„ ํ•ด์•ผ๊ฒ ๋‹ค.
  2. favicon์— ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€๋Š” favicon์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ html ๋ฌธ์„œ์˜ ๋ฉ”ํƒ€ ์ •๋ณด์— ์˜คํ”ˆ ๊ทธ๋ž˜ํ”„(Open Graph)์—์„œ๋„ ์‚ฌ์šฉ๋  ์ด๋ฏธ์ง€์ด๋‹ค. ์ฆ‰, ์ด๋ฏธ์ง€๊ฐ€ ๊ณต์œ ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ favicons-webpack-plugin์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ favicon ๊ธฐ๋Šฅ์—๋งŒ ์ข…์†๋˜๊ธฐ ๋•Œ๋ฌธ์— copy-webpack-plugin์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

Open Graph

  • ์ฝ˜ํ…์ธ ์˜ ์š”์•ฝ ๋‚ด์šฉ์ด SNS์— ๊ฒŒ์‹œ๋˜๋Š”๋ฐ ์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ฒƒ

Preview

 

copy-webpack-plugin ์‚ฌ์šฉํ•˜๊ธฐ

https://webpack.js.org/plugins/copy-webpack-plugin/

 

CopyWebpackPlugin | webpack

webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.

webpack.js.org

copy-webpack-plugin์€ ํŠน์ •ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋‚˜ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด ๋ฒˆ๋“ค๋ง ๋œ ํด๋” ๋‚ด์— ๊ฒฝ๋กœ๋กœ ์‚ฝ์ž…ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‹ค.

ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์˜€๋Š”๋ฐ

const CopyWebpackPlugin = require('copy-webpack-plugin'); (...) plugins: [ new HtmlWebpackPlugin({ title: 'MovieInfoService', template: './template.hbs', meta: { author: "CHOI", description: "This site is where people see a various of movie info and evaluate it", viewport: 'width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1' }, (...) new CopyWebpackPlugin([ { from: 'src/img/logo', to: 'logo/' } ]) ]
Copy Plugin has been initialized using an options object that does not match the API schema. - options[0] misses the property 'patterns'.

 

์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.
ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๊ตฌ๊ธ€๋งํ•˜์—ฌ ์Šคํƒ ์˜ค๋ฒ„ ํ”Œ๋กœ์šฐ์—์„œ ์ฐพ์•„๋ณด๋‹ˆ,
https://stackoverflow.com/questions/61937054/npm-run-dev-fails-validationerror-invalid-options-object

 

npm run dev fails : ValidationError: Invalid options object

Currently learning Vue js and express js through some tutorials, I am still newbie regarding these technologies. Anyway following the tutorials I am building a small project in which I have a fol...

stackoverflow.com

This is not an issue with webpack or webpack-dev-server itself, but with the copy-webpack-plugin plugin.
With the update to the 6.x major version came a breaking change: instead of just passing the array with the config patterns directly to the CopyWebpackPlugin constructor, your now have to wrap it in the patterns property of an object and pass that.

 

์ฆ‰, webpack ์ž์ฒด์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ copy-webpack-plugin์ด ๋ฒ„์ „ 6 ์ด์ƒ๋ถ€ํ„ฐ๋Š” patterns ํ”„๋กœํผํ‹ฐ๋กœ ํ•œ๋ฒˆ ๋” ๊ฐ์‹ธ์ค˜์•ผ ๋œ๋‹ค๋Š” ๋‚ด์šฉ์ด์—ˆ๋‹ค.
์ด์— ์ฝ”๋“œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•˜์˜€๋”๋‹ˆ ๋ฌธ์ œ ์—†์ด ์ž‘๋™ํ•˜์˜€๋‹ค.

const CopyWebpackPlugin = require('copy-webpack-plugin'); (...) plugins: [ new HtmlWebpackPlugin({ title: 'MovieInfoService', template: './template.hbs', meta: { author: "CHOI", description: "This site is where people see a various of movie info and evaluate it", viewport: 'width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1' }, (...) new CopyWebpackPlugin({ patterns: [ {from: 'src/img/logo', to: 'logo/'} ] }) ]

๋นŒ๋“œ ๊ฒฐ๊ณผ

copy-webpack-plugin์€ ์ง€์ •ํ•œ path ๋‚ด์— ์žˆ๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋“ค์„ ๋ณต์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ img ์ „์ฒด์— ํƒ€๊ฒŸ์„ ๋‘”๋‹ค๋ฉด ๋กœ๊ณ  ์™ธ์— ์“ฐ์ด์ง€ ์•Š๋Š” ๊ธฐํƒ€ ์ด๋ฏธ์ง€ ์†Œ์Šค๋“ค๊นŒ์ง€ ๋ณต์‚ฌํ•ด ์˜ฌ ๊ฒƒ์ด๋‹ค.
์ด๋ฅผ ์œ„ํ•ด ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ logo๋ฅผ ๋ณ„๋„๋กœ ์ƒ์„ฑํ•ด ์ค€ ๋’ค ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ์ˆ˜์ •ํ•˜์˜€๋‹ค.

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ