webpack3.0을 사용하여 webpack-dev-server를 구성하는 방법

php中世界最好的语言
풀어 주다: 2018-05-31 14:33:49
원래의
1510명이 탐색했습니다.

이번에는 webpack3.0을 사용하여 webpack-dev-server를 구성하는 방법과 webpack3.0을 사용하여 webpack-dev-server를 구성할 때 어떤 주의사항이 있는지 보여드리겠습니다. 다음은 실제 사례입니다. 봐.

최근에 webpack을 공부하고 있는데 webpack 자체로 작은 서버를 구축할 수 있다는 얘기를 들어서(vue-cli를 사용해 본 친구들은 봤을 텐데) 꼭 해보고 싶네요. 그러나 실제 운영을 해보면 webpack으로 서버를 구축하는데 여전히 많은 함정이 있다는 것을 알게 되었습니다. 한편으로는 문서에 익숙하지 않고 webpack-dev-server의 운영 모드를 이해하지 못하기 때문입니다. 반면에 많은 블로그를 읽은 후 기사를 읽은 후 많은 구성이 실제로 실행될 수 없다는 것을 발견했습니다(버전 때문일 수도 있고 자체 구성 때문일 수도 있음). 그래서 저는 webpack3.0을 사용하여 dev-server를 실행하고 모든 사람에게 시연할 계획입니다. 그런데 여러분이 우회할 필요가 없도록 몇 가지 구성과 원칙을 모든 사람에게 명확하게 설명하겠습니다.

여기서는 모든 사람이 사용해야 하는 webpack과 로더 및 플러그인을 설치했다고 가정합니다. webpack-dev-server는 독립적인 npm 패키지이므로 npm 아래에 설치해야 합니다.

npm install webpack-dev-server --save-dev
로그인 후 복사

그 후 다음에서 구성할 수 있습니다. webpack.config.js:

const path = require("path");
module.exports = {
   entyr:{
      ....... //设置入口文件
   },
   output:{
      ....... //设置出口文件
   },
   module:{
      ....... //配置loader,注意使用rules而不是loaders
   },
   plugins:[
      ....... //注意是数组
   ],
   devServer:{
      //我们在这里对webpack-dev-server进行配置
   }        
}
로그인 후 복사

devServer에서 일반적으로 사용되는 구성 개체 properties는 다음과 같습니다.

1. contentBase: "./" // 로컬 서버가 페이지를 빌드하는 디렉터리에 일반적으로 우리가 빌드합니다.

2.historyApiFallback: true // HTML5 History Api를 사용하는 경우 매우 유용합니다. 모든 점프 또는 404 응답은 index.html 페이지를 가리킬 수 있습니다.

3. inline : true // dev-server의 자동 새로 고침을 지원하는 데 사용되는 구성입니다. Webpack에는 자동 새로 고침을 지원하는 두 가지 모드가 있습니다. 하나는 iframe 모드이고 다른 하나는 devServer에서 구성이 필요하지 않습니다. 단지 특정 URL 형식을 사용하여 액세스할 수 있지만 일반적으로 devServer에서 inline을 true로 설정한 후에도 webpack-dev-server를 시작할 때 적용되도록 인라인을 구성해야 합니다. ;

4. hot: true // webpack 핫 모듈 교체 기능을 활성화합니다. 이것은 또한 많은 블로그에서 hot을 true로 설정하고 나중에 살펴보겠습니다. 5. port: 포트 번호 (기본값 8080) // 이에 대해서는 더 말할 필요가 없습니다.

사실 이것은 편의상 일반적으로 사용되는 구성입니다. packjson :

"scripts": {
  ......
  ......
  "start":"webpack-dev-server --inline"
 },
로그인 후 복사

devServer에서 inline: true를 설정하고 여기에서도 설정하는 것을 잊지 마세요!

이때, 서버를 패키징하고 실행하면 index.html 페이지가 표시되는 것을 볼 수 있습니다. src에는 패키징된 js 파일이 표시되지만 콘솔을 열면 표시되지 않습니다. 다음 오류:

콘솔에 다음이 표시됩니다. 핫 모듈 교체가 비활성화되었습니다.

이상합니까? 이전에 devServer에서 hot을 true로 설정하지 않았나요? 사실 이유는 모르겠지만 현재 hot 속성은 쓸모가 없습니다. hot 모듈을 사용하려면 webpack.HotModuleReplacementPlugin이라는 플러그인을 사용해야 합니다. 따라서 webpack.config.js에 다음을 추가해야 합니다:

const path = require("path");
const webpack = requier ("webpack");
module.exports = {
   entyr:{
      ....... //设置入口文件
   },
   output:{
      ....... //设置出口文件
   },
   module:{
      ....... //配置loader,注意使用rules而不是loaders
   },
   plugins:[
     new webpack.HotModuleReplacementPlugin()
      ....... //注意是数组
   ],
   devServer:{
     contentBase: "./", 
   historyApiFallback:true,
   inline:true,
   hot:true
   }        
}
로그인 후 복사

이때 bash에서 npm run start를 실행하면 서버가 설정되었음을 확인할 수 있습니다!

그리고 주목할 점은 webpack-dev-server에서 사용하는 Bundle.js 파일은 webpack.config.js의 출력 패키징으로 생성된 Bundle.js가 아니라 webpack-dev-server를 사용한다는 점입니다. 자체적으로 패키징되어 생성되는데, 이 파일은 출력이나 다른 경로에 존재하지 않고, 실제로는 webpack-dev-server에서 사용하는 Bundle.js를 볼 수 없습니다!

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

WeChat 미니 프로그램에서 인증 코드 비밀번호 입력 상자 기능 개발 방법


React 가상 DOM 사용 방법

위 내용은 webpack3.0을 사용하여 webpack-dev-server를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
web
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿