에루샤
erusya
Back-end Developer
Web Geek
Anime Otaku
에루샤
개발
Dev: Laravel 6.x

라라벨 npm run prod 실패 문제 해결

36 views as of December 6, 2024.

Webpack 마무리 중 문제 발생

어느정도 반복적인 스크립트, 스타일 작업이 완료되고 배포판으로 스크립트와 스타일을 재 패키징 하기위해 서버에 아래와 같이 명령어를 적었다.

npm run prodCopy

기존의 dev나 watch와 다르게 위의 명령어는 압축, 난독화까지 진행해주는 정말 애플리케이션 배포를 위한 마지막 웹팩 작업이다.

근데 갑자기 아래와 같은 에러가 뜨면서 안되는것이 아닌가...

$ npm run prod

> prod
> npm run production


> production
> cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js

[webpack-cli] Error: Unknown option '--no-progress'
[webpack-cli] Run 'webpack --help' to see available commands and optionsCopy



먼저 GPT에게 물어봤다

뭐 요즘 뭐 안되면 GPT에게 물어보는게 첫 단추라 물어보니 webpack 버전 문제에 따른 파라미터 미지원 문제라고한다.
위 에러 로그에서도 볼 수 있듯이 --no-progress 이 부분의 명령어가 사라진듯 싶었다.

나도 모르는사이에 노드 패키지가 업데이트 되었나? 싶어서 버전을 확인해보니...

$ npm list webpack-cli
web@ /var/www/web
└─┬ laravel-mix@6.0.49
  └─┬ webpack-cli@4.10.0
    ├─┬ @webpack-cli/configtest@1.2.0
    │ └── webpack-cli@4.10.0 deduped
    ├─┬ @webpack-cli/info@1.5.0
    │ └── webpack-cli@4.10.0 deduped
    └─┬ @webpack-cli/serve@1.7.0
      └── webpack-cli@4.10.0 dedupedCopy

딱히 버전상 문제는 안보였다.

당연히 GPT는 버전문제라고 자꾸 업뎃하라고 시키는데, 구버전 프레임워크와 패키지를 쓰는 개발자에게 업데이트란 다른 문제를 낳는 미친행위임을 잘 알기때문에 어떻게든 우회방법이 없나 검색을 통해 알아보기 시작했다.



명령어 변경해 문제해결

해답은 일본 개발자 사이트인 qiita.com 에서 발견했다.
나랑 같은 에러메시지와 문제가 발생한 상황이고 Laravel Mix 6 에서 몇가지 파라미터 옵션이 삭제되었는데 package.json 에는 그 내용이 남아있어서 발생하는 문제라고 한다.

루트 폴더에 위치한 package.json을 열만 아래와 같이 상단에 터미널에 입력가능한 npm script를 정의하고있는데,

"scripts": {
        "dev": "npm run development",
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run production",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --config=node_modules/laravel-mix/setup/webpack.config.js"
},Copy


위의 스크립트 내용을 아래와 같이 변경해주면 된다.

"scripts": {
    "dev": "npm run development",
    "development": "mix",
    "watch": "mix watch",
    "watch-poll": "mix watch -- --watch-options-poll=1000",
    "hot": "mix watch --hot",
    "prod": "npm run production",
    "production": "mix --production"
},Copy


혹시나 몰라서 기존의 dev, watch도 시도해보니 위의 새로운 명령어로도 webpack이 정상작동함을 확인했다.



[npm]npm run prodに失敗する - Qiita
[npm]npm run prodに失敗する - Qiita
はじめに現在、Web系自社開発企業への転職を目標にポートフォリオを作成中。Dockerを活用してLEMP環境を構築し、Laravel+VuejsでWebアプリケーションの開発を行っております。…
https://qiita.com/NULL_000000/items/1f7f28d7cb8d966ec4af

#Laravel
0 개의 댓글
×