코딩/Today I Learn

12.22공부 프론트엔드 시작

코딩쪼렙 2021. 12. 22. 22:15
728x90

브라우저에서 구동되는 자바스크립트 작성하기 

back-end에서 node.js에  최신버전 자바스크립트를 작성하면 babel-node로 구버전 자바스크립트로 컴파일 했다면

fron-end에서는 node.js에 webpack의 babel-loader을 이용하여 컴파일한다.

두개다 패키지들 package.json에서 관리 

보통 webpack을 직접 설정하지않고 이미 포함되어있는 툴을 쓴다.ex) react, react Native vue, sevelte

 

 

 

Webpack

scss--> css, 최신 javascript --> 구버전 javascirpt, jpg -> 압축 jpg
보통 react,vue등을 다룰때 webpack은 뒤에서 깔려서 활동하고 따로 설정을 할 필요는 없다.

 

 

1.webpack설치 npm i webpack webpack-cli -D  //--save-dev의 축약

 

2.webpack.config.js생성

구 문법 자바스크립트만 이해한다.

import 사용 못하고 const hi = require처럼 사용

최신 node.js코드인

export default  x 

module.exports={} 사용

 

webpack 필수조건 

1.entry :소스코드, 우리가 처리하고자는 파일  = 최신 자바스크립트 

2. output

 

client 폴더 안에 있는 코드들은 모두 서버가아닌 브라우저에서 실행될 거라는 걸 알 수있음 

webpack.config.js

 

const path = require("path")

module.exports ={
    entry: "./src/client/js/main.js", //바꿀파일

    mode: 'development',  //모드에 대한 경고가 계속 뜨는데 prodocution은 모든 파일을 압축해 개발 중에 main.js파일읽기힘듬    

    output:{
       filename: "main.js",  //변환 후 파일명
       path:path.resolve(__dirname,"assets","js"),    //변환 후 경로 
    }
}

dirname: directoryname 파일까지의 전체경로

path.resolve: 경로 만들어줌 

 

package.json  

"scripts": {  명령어 짧게 사용하기위한 것 scripts
    "dev": "nodemon -L --exec babel-node src/init.js",
    "assets":"webpack --config webpack.config.js" //webpack사용하기 위해 
  },

 

npm run assests 실행하면

assets > js >main.js 폴더, 파일이 생성됨

 

그러나 아직도 브라우저와 호환되지 않는 코드가 있어

bable 이용 할 것임 프론트엔드 관련된 모든 코드는 webpack.config.js에서 이루어짐

 

rules -> 각각 파일의 종류에 따라 어떤 전환을 할 건지 정하는 것 

 

1. npm i -D babel-loader   바벨로더 설치

 

2.module:{
    rules:[  // 어떤 파일 종류에 따라 어떤 처리를 할 것인지 여러 룰이있기 때문에 배열로
        {
            test:/\.js$/,   //js파일을
            use:{
                loader: 'babel-loader',   //babel- 로더 이용하여 변경 
                options: {
                  presets: [
                    ['@babel/preset-env', { targets: "defaults" }]
                  ]
                }
            }
        }
    ]

}

 

 Webpack  converting New JS to Old JS.
Webpack is running the 'loaders' which are the ones transforming the code.

 

/.js$/ = RegExp 정규표현식
정규표현식에선 .가 분류 커맨드이므로 그냥 .을 쓸려면 \..을 해줘야 된다.
따라서 .js는 .js이다

Webpack 시작하기: https://webpack.kr/guides/getting-started/
Webpack 설정: https://webpack.kr/concepts/configuration/