개발/디버깅

[node-gyp-build 에러] Module not found: Error: Can't resolve 'fs' in <path>

김알리 2022. 6. 12. 20:18
728x90
반응형

개발 환경

  1. Vue.js, Vuex, Nuxt.jx 사용한 프론트엔드 환경
  2. 컴파일 중 에러 발생

 

에러 문구

Failed to compile with 1 errors

This dependency was not found:
* fs in ./node_modules/node-gyp-build/index.js

To install it, you can run: npm install --save fs

in ./node_modules/node-gyp-buil/index.js
Module not found: Error: Can't resolve 'fs' in 'D:\Project\myproject\frountend\node_modules\node-gyp-build'

 

발생 원인 분석

  • 새로 npm 패키지를 설치한 후 발생한 에러이다.
  • 새로 설치한 npm 패키지의 dependency인 node-gyp-build의 dependency인 fs를 찾을 수 없다는 에러이다. 
  • 'fs'는 npm 패키지가 아니다. Node.js의 모듈이다. 그런데 Nuxt.js에서 사용되는 webpack은 Node.js의 fs모듈을 지원하지 않는다. 따라서 Vue뿐만 아니라 Angular에서도 유사한 문제가 발생하는 것으로 추정된다. 

 

해결 방법

1. nuxt.config.js 파일에 다음과 같이 추가한다. "fs"가 npm에서 가져온 패키지가 아니라는 것을 알려주는 것이다. (관련링크)

build: {
    // ...
    extend (config, { isDev, isClient }) {
        config.node = {
            fs: "empty"
        }
    }
}

2. 해당 npm 모듈을 프론트엔드에서 사용하지 않는 방법을 찾는다. 

 

 

 

 나는 결국 해당 npm 패키지를 프론트엔드에서 사용하지 않기로 했다. 그 npm 패키지를 백엔드에서 사용하는 것이 더 적합한 상황이었고, 잘 알지도 못하는 방식으로 config 파일을 바꾸면서까지 이 패키지를 사용할 이유도 없었다. 

 

 

728x90
반응형