본문 바로가기
SW Developer/NodeJS Express

npm install express-handlebar 설치 후 error MODULE_NOT_FOUND 해결 방법(2)

by ashespia 2022. 2. 23.
SMALL

Node js Express Error Cannot find module MODULE_NOT_FOUND 해결 방법 (2)

 

npm install express-handlebar 설치 후 error MODULE_NOT_FOUND 해결 방법 2번째

 

설치 이슈로 인해 작업한 내용이 없기에 워킹디렉토리를 새로 만들었다. 

 

우선 잘못한 부분을 정상적으로 설정된 워크 디렉토리와 비교해 보자

 

 

express engine 옵션인 -e에 보면 전통적인 ejs

express에서 추천하는 엔진인 pug

그리고 OReilly Web Development with Node & Express 한 권으로 끝내는 Node & Expres 2판 에서 추천하는 view 엔진인 handlebars는 hbs 옵션으로 설치해야한다.

https://handlebarsjs.com/installation/#npm-or-yarn-recommended handlebars 최종버전은 4.X대 이다. 

책에는 3점대 버전을 깔도록 되어있었는데 동일한 이름의 패키지가 있어서 문제 되었던 것이다.

 

 

$ express -h

  Usage: express [options][dir]

  Options:

    -h, --help          output usage information
        --version       output the version number
    -e, --ejs           add ejs engine support
        --hbs           add handlebars engine support
        --pug           add pug engine support
    -H, --hogan         add hogan.js engine support
        --no-view       generate without view engine
    -v, --view <engine> add view <engine> support (ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)
    -c, --css <engine>  add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
        --git           add .gitignore
    -f, --force         force on non-empty directory

 

아래처럼 옵션을 변경해서 설치하면 된다.

express --view=hbs myapp

 

잘못설치된 패키지들을 정리하고 정상적으로 구동되는지 확인 해 보자

 

npm install했던것 처럼 npm uninstall 명령어를 통해 잘못 설치한 패키지들을 정리할 수 있다. 

 

npm uninstall express-handlebar

 

 

왼쪽의 정상적으로 handlebars 가 정상적으로 설치된 경우 views 폴더 하위에 파일들이 정상적으로 들어가 있다.

 

삭제 후 정상적으로 재설치하면 진절하게 다음에 수행해야할 명령어들을 알려준다.

 

ashespia@sw-24 MINGW64 /d/work/expressToDoList
$ cd ../expressToDo

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ npm uninstall express-handlebars

removed 19 packages, and audited 63 packages in 1s

found 0 vulnerabilities

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ npm uninstall isaacs

removed 9 packages, and audited 54 packages in 1s

found 0 vulnerabilities

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ cd ..

ashespia@sw-24 MINGW64 /d/work
$ express --view=hbs expressToDo
destination is not empty, continue? [y/N] Y

   create : expressToDo\
   create : expressToDo\public\
   create : expressToDo\public\javascripts\
   create : expressToDo\public\images\
   create : expressToDo\public\stylesheets\
   create : expressToDo\public\stylesheets\style.css
   create : expressToDo\routes\
   create : expressToDo\routes\index.js
   create : expressToDo\routes\users.js
   create : expressToDo\views\
   create : expressToDo\views\error.hbs
   create : expressToDo\views\index.hbs
   create : expressToDo\views\layout.hbs
   create : expressToDo\app.js
   create : expressToDo\package.json
   create : expressToDo\bin\
   create : expressToDo\bin\www

   change directory:
     > cd expressToDo

   install dependencies:
     > npm install

   run the app:
     > SET DEBUG=expresstodo:* & npm start


ashespia@sw-24 MINGW64 /d/work
$ ^C

ashespia@sw-24 MINGW64 /d/work
$ cd expressToDo

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ npm install

added 10 packages, and audited 64 packages in 4s

4 vulnerabilities (2 moderate, 2 critical)

To address all issues, run:
  npm audit fix --force

Run `npm audit` for details.

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ ^C

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ npm audit fix --force
npm WARN using --force Recommended protections disabled.
npm WARN audit Updating hbs to 4.2.0,which is outside your stated dependency range.

removed 1 package, changed 5 packages, and audited 63 packages in 2s

found 0 vulnerabilities

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ npm install

up to date, audited 63 packages in 1s

found 0 vulnerabilities

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ ^C

ashespia@sw-24 MINGW64 /d/work/expressToDo (main)
$ SET DEBUG=expresstodo:* & npm start
[1] 2444
bash: SET: command not found

> expresstodo@0.0.0 start
> node ./bin/www

 

 

cmd를 전부 실행하고 express 기본 포트인 3000로 접속 해 보면 Express 화면이 잘 나오는걸 확인 할 수 있다.

 

LIST

댓글