Webpack 을 이용하여 번들링시에 package.json 에 기술된 모듈들은 대부분 번들링프로세싱에서 제외시키고 번들링을 한다.

{
    test: /\.(js|jsx)$/,
    // package.json 에 기술되어 설치된 npm 모듈들은 Babel 에서 제외 "/node_modules/" 하위 디렉토리
    exclude: /node_modules/,
    loader: 'babel-loader',
    options: {
      presets: ['@babel/preset-env']
    }
},

하지만 최근 일부 npm 모듈들은 IE11 를 지원하지 않는 모듈들도 나타나서 이런 모듈들을 포함해서 쓸경우 IE에서 실행할경우 ES6 미지원에 대한 에러가 발생하는 경우가 있다.

이런 브라우져들도 지원을 하려면 이때 package.json 에 기술되었더라도 Babel 을 이용한 번들링이 필요한데, 이때 다음과 같은 정규식 문법으로 exclude 필드에서 제외하는 방법이 있다.

{
    test: /\.(js|jsx)$/,
    // swagger-parser - v10.0.2
    // swagger-parser 의 경우 내부적으로 ES6의 모듈 2개에 대한 디펜던시를 가지고 있는데
    // 해당 모듈들을 찾아서 다음과같이 babel-loader 에 exclude 에 포함되지 않도록 설정한다
    exclude: /node_modules\/(?!(@apidevtools|@jsdevtools))/,
    loader: 'babel-loader?cacheDirectory',
    options: {
      presets: ['@babel/preset-env']
    }
},

위와같이 처리하고 Webpack 번들링을 수행하면, IE11 에서도 에러없이 ES6가 폴리필처리되어 잘 수행된다.

참고: tech.kakao.com/2020/12/01/frontend-growth-02/

Posted by leechwin
,

Centos7 에서 yum install maven 으로 maven 을 설치하면 3.0.5 버전이 설치가 된다.

이보다 높은 버전을 설치하고 싶다면 다음과 같이 수동으로 maven 을 설치해야한다.

Apache Maven 3.6.3 설치 예제

// 바이너리 다운로드
$ wget https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz -P /tmp

// /opt 폴더에 압축 해제
$ sudo tar -xzvf /tmp/apache-maven-3.6.3-bin.tar.gz -C /opt

// 소프트링크 생성
$ sudo ln -s /opt/apache-maven-3.6.3 /opt/maven

// 환경셋업 스크립트 생성
$ sudo vi /etc/profile.d/maven.sh
#JAVA 설정 되어있다면 무시
#export JAVA_HOME=/usr/lib/jvm/jre-openjdk
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}

// 환경셋업 스크립트 실행
$ source /etc/profile.d/maven.sh

// Maven 버전 확인
$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/maven

참고: yallalabs.com/devops/how-to-install-apache-maven-centos-7-rhel-7/

Posted by leechwin
,