2016-12-06 5 views
2

최근에 webpack을 평가하기 시작했습니다. 이전에 불평을 사용하다 보니 빌드 중에 일어날 일을 구성하기 위해 다양한 매개 변수로 불평을 시작할 수 있다는 사실에 익숙합니다. 예 :Webpack : 별도 생산 및 개발자 빌드

grunt watch 

디버그 빌드를 실행하고 감시 작업을 활성화합니다. While :

grunt build 

모든 개발 관련 기능을 사용하지 않도록 완전히 최소화 된 제작 빌드를 트리거합니다.

webpack에 다른 구성간에 쉽게 전환 할 수있는 유사한 기능이 있는지 궁금합니다. (예를 들어, 윈도우에서 작동하지 않습니다) 나는 webpack를 호출하기 전에 NODE_ENV=production을 지정하는 제안을했다

  • , 그러나 이것은 플랫폼 independend되지 않습니다 : 나는 이미 몇 가지 연구를했지만 나는 내가 지금까지 본 접근 방식을 좋아하지 않았다 .
  • 스위치를 사용하면 최소화에 영향을 미치는 것 같습니다.
  • webpack에는 별도의 구성 파일을 사용하지만 두 개의 개별 파일을 유지할 필요가없는 솔루션을 선호합니다.

나는 웹팩 실제로 작업 러너와 같은 꿀꿀 또는 꿀꺽, 오히려 모듈 들러 아니라는 것을 이해합니다. 그러나 grunt 또는 꿀풀 대체에 대한 홍보로 승진 됨see this Medium.com Blog. 정말보고 싶은 무엇

는 개발을받을 webpack watch과 생산 webpack 빌드 또는 webpack build 같은 빌드 할 수있는 능력 모두의

+1

감사합니다.나는 같은 문제로 어려움을 겪고 있으며 실제로 좋은 기사를 찾을 수 없습니다. –

답변

1

첫째, 당신이 사용하는 경우 웹팩-DEV 웹팩과 가능성이있다 -server dev에있는 모드를 이해하는 것은 꽤 쉽습니다.

let isDevMode = process.argv[1].endsWith('webpack-dev-server') || process.argv[1].endsWith('webpack-dev-server.js'); 

첫 번째 조건은 Linux/mac 용이고 두 번째 조건은 Windows 용입니다.

다음이 파일을 구성하는 데 사용하십시오.

dev_server를 사용하지 않는 경우 webpack을 실행하는 동안 nodejs 스크립트와 마찬가지로 매개 변수를 전달할 수 있습니다 (매개 변수를 읽으려면 minimist을 사용하지만 설탕 일 경우 사용하지 마십시오. 그런 식으로

let argv = require('minimist')(process.argv.slice(2)); 

let isDevMode = argv.dev; // or watch or whatever you want to pass 

를 한 다음 전화 :

webpack --dev 

이 실제로뿐만 아니라 dev에 모드를 지정, 일을 많이하고 매우 유연한 방법이다 '는 t)를해야합니다. 번들 이름 등을 지정하는데도 사용합니다. 신경 써야 할 것은 webpack 자체에서 제공하는 매개 변수를 사용하지 않는 것입니다.

+0

감사합니다. 나는 프로세스 환경에 쉽게 접근 할 수 있다는 것을 알지 못했다. 빠른 console.log (프로세스)는 실제로 웹팩 프로세스에서 모든 종류의 것들에 접근 할 수 있다는 것을 보여준다. argv [0]은 argv [1]이'webpack'이고, argv [0]는 argv [1]이다. 'nodejs' – lanoxx

+1

아니요. webpack dev 서버를 사용하면'webpack'이'webpack-dev-server'로 바뀌기 때문에 정확히'argv [1]'입니다. 다른 이름으로 실행 가능합니다. – smnbbrv