-
2019-09-23 개발일지개발일지 2019. 9. 23. 17:20
오늘은 프론트 서버를 운영 서버에 배포 테스트를 했다.
기존에 나는 apache 웹 서버나 tomcat WAS를 사용해왔는데 프론트 팀은 nginx를 쓰기로 결정했다고 한다.
프론트 팀이 리눅스를 모르기 때문에 nginx에 대한 설정은 프론트 팀이 담당하고 내가 OS 및 명령어, 기존 환경을 서포트하는 형식으로 진행했다.
정적 파일 위치 변경, 방화벽 포트 허용 설정, 테스트용 도메인 설정, SELinux 설정, 디렉토리 권한 설정 등을 서포트했다.
테스트용 도메인을 연결해서 접속해본 결과 정상적으로 작동했다.
이제 운영 용 DB를 세팅하고 운영용 백엔드 서버 세팅을 진행할 예정이다.
백엔드 프로젝트를 빌드하기 위해서 웹팩을 도입했는데 Node.js 프로젝트에 대한 빌드 관련 글이 없었다.
그래서 걍 일단 무턱대고 webpack.config.js를 만들고 webpack4로 스크립트를 짜고 있는데 여간 문제가 아니다.
빌드할 때 node_modules에 존재하는 패키지들을 포함하여 빌드하기 위해서 resolve.modules에 node_modules를 추가했더니 내려받은 npm 패키지들에 아래와 같은 에러가 발생했다.
"Critical dependency: the request of a dependency is an expression"
요거를 해결하기 위해서 npm 패키지 중 webpack-node-externals를 개발 디펜던시에 추가하고...
const nodeExternals = require('webpack-node-externals'); const path = require('path'); module.exports = { target: 'node', mode: 'production', entry: { myApp: path.resolve(__dirname, 'app.js') }, output: { path: path.resolve(__dirname, './dist'), filename: '[name].js' // entry의 myApp 키 값이 이름으로 설정된다. }, context: path.resolve(__dirname, 'project name'), module: {}, externals: [nodeExternals()], plugins: [], optimization: { minimize: false }, resolve: { modules: [ 'node_modules' ], extensions: [ '.js', '.json' ] } }
이렇게 작업했다.
또 optimization을 작성 안했더니 Invalid assignment에러만 딸랑 뜨고 어느 위치에서 발생한건지 알려주지도 않더라.
그래서 찾아보니 uglify기능이 es6에 대해선 기본으로 적용이 안되는 모양이더라.
그래서 minimize 속성을 임시로 false로 변경하고 현재 "굳이 클라이언트에게 코드를 내려받게 하지도 않는 node.js 프로젝트에 uglify를 적용해야하는가?"라는 고민에 빠졌다.
(작성 안하면 uglify 기능인 minimize속성이 true다.)
이런 고민을 하고 있는 도중에...
빌드된 파일을 실행이 되나 싶어서 실행해봤더니...
왜 그러냐 또 ㅜㅜ
해당 위치 코드가 뭐 때문에 문제가 발생하는지는 구문만 봐도 알 수 있다.
문자열에 문자열이나 false를 "대입"하려고 하니까 문제가 발생한거다.
해당하는 코드는 빌드 전에는 아래와 같이 짜여있다.
이걸 어떡한담...쉽게 해결할 수 있었다.
웹팩 설정 중 optimization에 nodeEnv라는 속성이 있다.
해당 값을 false로 변경하면 웹팩 빌드 시 process.env.NODE_ENV를 문자열로 변환하지 않는다.
참고: https://github.com/webpack/webpack/issues/7470
'개발일지' 카테고리의 다른 글
2019-09-25 개발일지 (0) 2019.09.25 2019-09-24 개발일지 (0) 2019.09.24 2019-09-20 개발일지 (0) 2019.09.20 2019-09-19 개발일지 (0) 2019.09.19 2019-09-18 개발일지 (0) 2019.09.18