IT/Library

[Webpack] copy-webpack-plugin 모듈에 대해 알아보자

2023. 6. 28. 21:44
오늘의 명언

“ 소프트웨어 산업의 가장 놀라운 성과는 하드웨어 산업이 꾸준히 이루고 있는 성과들을 착실하게 갉아 먹고 있다는 것이다. ”

- Henry Petroski (헨리 페트로스키)
목차
  1. 파일 시스템 경로 모듈을 사용하여 파일을 복사하는 방법
  2. copy-webpack-plugin 모듈을 사용하여 파일을 복사하는 방법
300x250

이번에 회사에서 프로젝트를 진행하던 도중, 테스트 기능을 구현하면서 꼭 필요한 파일이 있어

node_modules에 있는 어떠한 모듈에 정적파일을 복사하여 사용해야 하는 일이 있었습니다.

 그래서 이것에 대해서 어떻게 복사할 방법을 고민하던 중 js파일에 fs 모듈을 사용하여 디렉터리를 복사하는 방법을 사용하다

copy-webpack-plugin 모듈을 찾게 되어 간단하게 설정하여 구현한 방법을 소개하려고 합니다.

 

환경
nuxt 2.15.8

Typescript

composition Api

 

 

 

파일 시스템 경로 모듈을 사용하여 파일을 복사하는 방법


    
const fs = require('fs')
const path = require('path')
const srcFolder = path.join(
__dirname,
'node_modules',
'라이브러리명',
'dist'
)
const destFolder = path.join(__dirname, 'static', '_nuxt')
if (!fs.existsSync(destFolder)) {
fs.mkdirSync(destFolder) //root 경로 static 폴더에 _nuxt폴더를 생성
}
fs.copyFileSync(
path.join(srcFolder, 'a.wasm'), // 라이브러리명 dist 폴더에 a.wasm 파일을 _nuxt로 복사
path.join(destFolder, 'a.wasm')
)

 

Tip

nuxt는 정적파일과 빌드된 애플리케이션 파일 분리를 위해 기본적으로 "_nuxt" 폴더를 사용합니다. 이 폴더에는 웹팩(Webpack)을 통해 빌드된 자바스크립트 파일, CSS파일, 이미지 등의 리소스가 저장됩니다. 물론 이 폴더명을 변경할 수 있는데 nuxt.config.js파일 build.publicPath 옵션을 사용하여 사용자 정의 경로를 지정할 수 있습니다.

 

The build Property

Nuxt lets you customize the webpack configuration for building your web application as you want.

v2.nuxt.com

 

 

copy-webpack-plugin 모듈을 사용하여 파일을 복사하는 방법

 

copy-webpack-plugin 모듈은 Webpack을 사용하여 프로젝트 빌드할 때 정적 파일을 복사하고 디렉터리를 만들기 위한 도구입니다.

이 모듈은 프로덕션 빌드 시에 특히 유용하며, HTML , CSS, 이미지 등과 같은 정적 파일을 적절한 위치에 배치하고 관리할 수 있도록 도와줍니다.

 

 

설치


    
npm install --save-dev copy-webpack-plugin

 

 

1) 사용방법 - webpack.config.js 파일에 구성


    
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
// ...
plugins: [
new CopyWebpackPlugin({
patterns: [
{ from: 'src/assets', to: 'assets' },
{ from: 'src/index.html', to: 'index.html' },
],
}),
],
};

 

 

2) 사용방법 - nuxt.config.js 파일에 구성


    
import CopyPlugin from 'copy-webpack-plugin'
import path from 'path'
export default{
// 생략
build: {
html: {},
transpile: [],
loaders: {
extend(config, ctx) {}
},
babel: {
compact: true
},
plugins: [
new CopyPlugin({
patterns: [
{
from: path.join( // 복사할 파일 위치
__dirname,
'node_modules',
'라이브러리명',
'dist'
),
to: path.join('','폴더명') // 원하는 폴더 이름
}
]
})
]
}
}

 

Info

사용법에서 webpack.config.js 파일로 구성하거나 nuxt.config.js로 본인의 프로젝트 성격에 따라 선택하여 구성하시면 됩니다. 그리고 구성된 코드 보시면 to: 부분에서 폴더명을 적어서 사용하시거나 to: path.join('') 이런 식으로 안 적으셔도 가능합니다. 이제 copy-webpack-plugin을 사용하여 프로젝트의 정적 파일을 웹팩 빌드에 효과적으로 포함시킬 수 있을 것입니다. 플러그인의 다양한 기능과 옵션을 사용하여 웹팩 빌드 프로세스를 더욱 유연하게 조정할 수 있습니다.

 

반응형
저작자표시 비영리 변경금지 (새창열림)
잘못된 내용이 있으면 댓글 부탁드립니다. 감사합니다.
Stack_Shines
Stack_Shines
프론트엔드 백엔드 학습정리 및 정보공유 블로그입니다.
'IT/Library' 카테고리의 다른 글
  • [Library] Swiper 라이브러리에 대해서 알아보자
  • [라이브러리] sanitize-html 사용하여 보안문제 해결하자
느린 개발자프론트엔드 백엔드 학습정리 및 정보공유 블로그입니다.
Stack_Shines
느린 개발자
Stack_Shines
전체
오늘
어제
  • 분류 전체보기 102
    • 티스토리 10
    • IT 67
      • Library 3
      • JavaScript 3
      • TypeScript 3
      • Nuxt & vue 14
      • Nuxt3 6
      • React 4
      • NestJS 4
      • Express 9
      • CI CD 1
      • WebGl 4
      • docker 6
      • MAC 2
      • 디자인패턴 1
      • Error 4
      • 홈서버 3
    • 프로젝트 1
    • 오늘의 회고 2
    • 맛리뷰 7
    • 다이어트 5
    • 여행 1
    • 끄적끄적 일상 6
    • 생활 정보 3

인기 글

최근 글

hELLO · Designed By 정상우.
Stack_Shines
[Webpack] copy-webpack-plugin 모듈에 대해 알아보자
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.