Webpack으로 빌드한 최신 파일은 설정을 통해 내가 원하는 경로에 넣을 수 있습니다.
그렇게 사용하던 도중, 그 파일을 다시 복사해 다른 경로에도 배포해야 할 일이 생겼습니다.
검색 실력이 모자라서 그런건지 기본 설정으로 처리하는 방법은 찾지 못했습니다.
결국 Webpack의 플러그인과 추가 별도의 js 파일로 처리하게 되었습니다.
핵심은 빌드가 끝난 후, 자동으로 다음 작업을 하는 것입니다.
그래서 찾은 게 Webpack Shell Plugin 입니다. 이 플러그인을 사용하면 빌드 후에 간단한 커맨드 명령어를 실행할 수 있습니다.
Webpack의 plugins 설정에 빌드가 끝나면 별도로 만든 `buildFileCopy.js`파일을 nodejs로 실행하도록 했습니다.
`buildFileCopy.js` 파일 안에는 저에게 필요한 간단한 파일 복사 기능을 만들어 두었습니다.
지금은 복사 뿐이지만 상황에 따라 자신이 원하는 후속 처리를 할 수 있습니다.
그렇게 사용하던 도중, 그 파일을 다시 복사해 다른 경로에도 배포해야 할 일이 생겼습니다.
검색 실력이 모자라서 그런건지 기본 설정으로 처리하는 방법은 찾지 못했습니다.
결국 Webpack의 플러그인과 추가 별도의 js 파일로 처리하게 되었습니다.
핵심은 빌드가 끝난 후, 자동으로 다음 작업을 하는 것입니다.
그래서 찾은 게 Webpack Shell Plugin 입니다. 이 플러그인을 사용하면 빌드 후에 간단한 커맨드 명령어를 실행할 수 있습니다.
plugins: [
new WebpackShellPlugin({
onBuildEnd: ['node ' + path.resolve(__dirname, 'buildFileCopy.js')]
})
]
Webpack의 plugins 설정에 빌드가 끝나면 별도로 만든 `buildFileCopy.js`파일을 nodejs로 실행하도록 했습니다.
`buildFileCopy.js` 파일 안에는 저에게 필요한 간단한 파일 복사 기능을 만들어 두었습니다.
const path = require('path');
const copy = require('copy');
const RESET = "\x1b[0m";
const FG_RED = "\x1b[31m";
const FG_GREEN = "\x1b[32m";
const src = path.resolve(__dirname, 'dist/*.js');
const dest = path.resolve(__dirname, 'docs/js');
copy(src, dest, (err) => {
if (err) {
console.log(FG_RED);
console.log(err);
} else {
console.log(FG_GREEN);
console.log('copy complete');
}
console.log(RESET);
});
지금은 복사 뿐이지만 상황에 따라 자신이 원하는 후속 처리를 할 수 있습니다.