New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. ๊ธ์ ์ ์น๊ตฌ์๊ฒ ๋น๋ ธ๋๋ฐ ์ค๋์ด ๋์ ์ฃผ๊ธฐ๋ก ํ๋ .. ๊ทธ๋ฐ๋ฐ ์นด๋๊ฐ์ ๋ด์ผํ๋ ๋ ๋ ์ค๋์ธ๋ฐ... ์ด๊ฑธ ์ด์ฉ๋...
4. ์ฐ๋ฆฌ ํ์ฌ๋ ์ค์ํ ์์ฌ ๊ฒฐ์ ์ ํ ๋?
5. ์ด์ฌํ ์ผํ ๋๋ฅผ ์ํ ์ ๋ฌผ์ ์ฃผ๊ณ ์ถ๋ค. ์ด๋ค๊ฒ ์ข์๊น?
6. ์ํ์์ ํฌ์์ํ์ ์ถ์ฒ๋ฐ์๋ค. ์ด๋ค๊ฑธ ๊ฐ์ ํ์ง?
7. ํ์ฌ์์์ ๋๋?
8. ๊ฟ์์ ๊นจ์ด๋๋ 20๋ ์ ์ผ๋ก ๋์๊ฐ๋ค. ๋น์ ์ด ์ ์ผ ๋จผ์ ํ๋์ผ์?
9. ๋ด๊ฐ ์ธ์ฌ ๋ด๋น์๋ผ๋ฉด ์ ๊ท ์ ์ฌ์ ์ฑ์ฉ ์ ์ ์ผ ์ค์ํ๊ฒ ๋ณด๋๊ฒ์?
10. ํ์ฌ์ ์ ๋ง ์ซ์ดํ๋ ๋๋ฃ๊ฐ ์๋ค๋ฉด?
11. ๊ฐ๋ํ ์ง์ ๊ฐ์ฅ์ด ๋์๋ค.. ์๋ ์ ์์ผ ๋ ์ ๋ฌผ์?
12. ํ์ ํ์ฌ ์ถ๊ทผ ์คํ์ผ์?
13.ํ์ฌ ์ฒด์ก๋ํ ํ๋ ๋ ์ด๋ค. ์ค๋ ๋ญํ์ง?
14. ๋์ ์ ๋ฌด ์คํ์ผ์?
์นํฉ์ ๋ํ ์ค๋ช ์ ์๋๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค.
2020/06/30 - [์ธ์ด/JavaScript] - webpack ์ด๋
webpack ์ด๋
webpack์ด๋, ๋ชจ๋ํํ ์ฌ๋ฌ ๊ฐ์ ํ์ผ์ ๋ชจ์ ์ฃผ๋ ๋ฒ๋ค๋ฌ์ ๋๋ค. ๋ฒ๋ค๋ฌ๋ ์ด ์ธ์๋ 'Rollup'๊ณผ 'Parcel'์ด ์์ต๋๋ค. ๋ชจ๋ํํ ํ์ผ ๊ฒฐํฉ์ ๋จ์ํ๊ฒ ํ์ผ์ ๊ฒฐํฉํ๋ ๊ฒ์ด ์๋๋ฉฐ, ๋ชจ๋์ ์์กด ์๏ฟฝ
codeparadise.tistory.com
๊ฐ๋ฐ์ ์ฌ์ฉ๋ ๊ฐ๋ฐ ๋๊ตฌ๋ vsCode์ ๋๋ค.
vsCode์ ๋ํ ์ค๋ช ์ ์๋๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค.
2020/06/21 - [Tool/vsCode] - [vsCode] vsCode๋?
[vsCode] vsCode๋?
Visual Studio Code๋ ๊ฐ๋ณ๊ณ ๊ฐ๋ ฅํ ์์ค ์ฝ๋ ํธ์ง๊ธฐ๋ก ๋ฐ์คํฌํฑ์์ ์คํ๋๋ฉฐ Windows, MacOS ๋ฐ Linux์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. JavaScript, TypeScript, Node.js์ ๋ํ ๋ด์ฅ๋ ์ง์๊ณผ ํจ๊ป ์ ๊ณต๋๋ฉฐ, ๋ค๋ฅธ..
codeparadise.tistory.com
์ด๋ฒ ์ค๋ช ์์ ์ฌ์ฉ๋ ํ๋ฌ๊ทธ์ธ๋ค ์ ๋๋ค.
- webpack
- webpack-cli
- html-webpack-plugin
- html-loader
- webpack-dev-server
- babel-loader
- node-sass
- style-loader
- css-loader
- sass-loader
- mini-css-extract-plugin
์ฐ์ ํ๋ก์ ํธ ์์ ํด๋๋ก ์ด๋ํฉ๋๋ค.
NPM ์ค์ ํ์ผ์ ์์ฑ ํด์ค๋๋ค.
npm init -y
์ค์ ํ ํ๋ฆฟ์ด ๋ ํด๋๋ฅผ ์์ฑํด์ค๋๋ค.
mkdir src
์ด๋ฒ ๊ตฌ์ฑ์ ํ์ํ ์นํฉ ํ๋ฌ๊ทธ์ธ๋ค์ ์ค์นํด์ค๋๋ค.
# html loader ์นํฉ ํ๋ฌ๊ทธ์ธ ์ค์น -D๋ ๋ํ๋์ ํฌํจ ์ค์น
npm i -D html-webpack-plugin html-loader
# ์นํฉ ํ
์คํธ ์๋ฒ ํ๋ฌ๊ทธ์ธ ์ค์น
npm i -D webpack-dev-server
# ๋ฐ๋ฒจ ์ค์น
npm i -D @babel/core babel-loader @babel/preset-env
# ์ด๋ฏธ์ง ํ์ผ ์ฝ์ ์ ์๋ ํ๋ฌ๊ทธ์ธ ์ค์น
npm i -D file-loader
# scss, style, css์ ์ฝ์ ์ ์๋ ํ๋ฌ๊ทธ์ธ ์ค์น
npm i -D node-sass style-loader css-loader sass-loader mini-css-extract-plugin
src ํด๋ ๋ด์ index.html์ ์์ฑํด์ค๋๋ค. ๋ฉ์ธ html์ด ๋ ํ์ผ์ ๋๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<img src="images/a.jpg">
</body>
</html>
src ํด๋ ๋ด์ index.js ํ์ผ์ ์์ฑํด์ค๋๋ค. js ๋ฉ์ธ์ด ๋ ํ์ผ์ ๋๋ค.
import { bro } from './bro';
import './styles/main.scss'
console.log(bro('Dude'))
src ํด๋ ๋ด์ images ํด๋๋ฅผ ์์ฑํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ด์ค๋๋ค. ์ ๋ a.jpg๋ผ๋ ํ์ผ์ ๋ฃ์์ต๋๋ค.
src ํด๋ ๋ด์ styles ํด๋๋ฅผ ์์ฑํ์ฌ main.scss ํ์ผ์ ์์ฑํด์ค๋๋ค.
$bg: red;
body {
background: $bg;
}
์์ ํด๋์ ๋ฃจํธ ์ต์์ ํด๋์ webpack.config.jsํ์ผ์ ์์ฑํด์ค๋๋ค.
const HtmlWebPackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.html$/,
use: [
{
loader: "html-loader",
options: { minimize: true }
}
]
},
{
test: /\.png|svg|jpg|gif$/,
use: [
'file-loader'
]
},
{
test: /\.scss$/,
use: [
"style-loader",
"css-loader",
"sass-loader"
]
}
]
},
plugins: [
new HtmlWebPackPlugin({
template: "./src/index.html",
filename: "./index.html"
}),
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename: "[id].css"
})
]
}
HtmlWebPackPlugin : html ์นํฉ ํ๋ฌ๊ทธ์ธ์ ๋ถ๋ฌ์ต๋๋ค.
MiniCssExtractPlugin : css๋ฅผ js ๋ก ๋ณํํด์ค ํ๋ฌ๊ทธ์ธ์ ๋ถ๋ฌ์ต๋๋ค.
rules ๋ด ์ค์ ์ ๋ํ ์ค๋ช ์ ๋๋ค.
-
js : ๋ฐ๋ฒจ์ ์ ์ฉํ๋ ์ค์ ์ ๋๋ค.
-
html : ํ์ผ ์์ถ์ ์ค์ ํฉ๋๋ค. ํด๋น ์ต์ ์ด ์ ์ฉ๋๋ฉด ๋ฉ์ธ js๋ ์๋์ผ๋ก ํธ์ถํฉ๋๋ค.
-
png|svg|jpg|gif : ์ด๋ฏธ์ง ์ธ ํ์ผ๋ค์ ํธ์ถํ ์ค์ ์ ํฉ๋๋ค. ์ถ๊ฐ๋ก ๋ค๋ฅธ ํ์ฅ์ ํ์ผ์ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด ์ถ๊ฐํ์ ๋๋ฉ๋๋ค.
-
scss : ์คํ์ผ ํ์ผ์ ์ค์ ํฉ๋๋ค.
use๋ ํด๋น ํ์ผ์ ์ฌ์ฉํ ํ๋ฌ๊ทธ์ธ์ ์ค์ ํ๋๊ฒ๋๋ค.
plugins ์ค์ ์ ์ด๋ค ํ์ผ์ ๋ถ๋ฌ์์ ์ด๋ค ํ์์ผ๋ก ์์ฑํ ์ง์ ๋ํ ์ค์ ์ ๋๋ค.
์ถ๊ฐ๋ก ๋ฉ์ธ js์์ ์ฐธ์กฐํ bro.js์ ๋๋ค. ์์น๋ src ์์ ์์ฑํ์ต๋๋ค.
const bro = (greeting) => {
return `${greeting}, bro`
}
export { bro }
๊ทธ ์ธ ์นํฉ ๋น๋ ๋ฐ ๊ฐ๋ฐ ์๋ฒ ๊ตฌ๋์ ์ํ ์ค์ ์ packge.json์ ์ถ๊ฐํฉ๋๋ค.
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack",
"start:dev": "webpack-dev-server"
}
๋ณต์ฌํ๊ธฐ ์ข๊ฒ ํ ์คํธ๋ ๋ฃ์ด๋์ต๋๋ค.
๋ชจ๋ ์ค์ ์ด ๋๋๋ฉด ๋น๋ ํ ๊ฐ๋ฐ ์๋ฒ๋ฅผ ๊ตฌ๋ํฉ๋๋ค.
# npm๋น๋
npm run build
# ์นํฉ ํ
์คํธ ์๋ฒ ๊ตฌ๋
npm run start:dev
์๋ฒ ๊ตฌ๋ํ๋ฉด ๋ก๊ทธ์ ์ฃผ์๊ฐ ๋์ค๋ฉฐ ํด๋น ์ฃผ์๋ฅผ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ํ์ฌ ์ค์ ์ด ์ ์ ์ฉ๋์๋์ง ํ์ธํ์๋ฉด ๋ฉ๋๋ค.
ํ์๋๋ http://localhost:8081/๋ก ์ ์ํ์ต๋๋ค.
์๋ฒ๊ฐ ๊ตฌ๋ํ๊ณ ์์์ [WDS] Live Reloading enabled. ์ฝ์๋ก๊ทธ์ ๋ ธ์ถ๋ฉ๋๋ค.
์๋ฒ๊ฐ ๋์ค์ ๋๊ธฐ๋ฉด [WDS] Disconnected! ๋ก๊ทธ๊ฐ ๋ํ๋ฉ๋๋ค.