웹 팩 포장 후의 파일 이 너무 큰 해결 방법 에 대하 여 말씀 드 리 겠 습 니 다.
우선 전역 변수 설정
우선,지정 한 환경 을 통 해 웹 팩 에 게 우리 가 현재 production 환경 에 있 음 을 알려 주 고 production 방식 에 따라 포장 해 야 합 니 다.
//    , process.env.NODE_ENV   library  
 new Webpack.DefinePlugin({
 'process.env.NODE_ENV': JSON.stringify('production'),
 }),devtool 의 source-map 최적화.dev-tool 은 debug 의 능력 을 향상 시 키 기 위해 여러 가지 옵션 을 제공 합 니 다.우리 가 잘 아 는 것 은 source-map,inline-source-map,cheap-source-map 등 이 있 습 니 다.상세 한 용법 은Devtool 공식 문서,Devtool 설정 비교,webpack sourcemap 옵션 의 다양한 모델 에 대한 설명 을 참고 할 수 있 습 니 다.source-map 는 개발 단계 에서 확실히 사용 하기 좋 고 디 버 깅 하기에 편리 하지만 생산 환경 에서 배치 할 필요 가 없습니다.prod 환경 에서 source-map 를 닫 는 것 을 권장 합 니 다.
css 파일 박리,단독 포장
웹 팩 플러그 인 extract-text-webpack-plugin 을 설치 합 니 다.npm install extract-text-webpack-plugin --save-dev 。 사용 방법:
plugins:[
 new ExtractTextPlugin('static/css/styles.[contenthash].css'),
]콘 텐 츠 hash 를 사 용 했 습 니 다.웹 팩 은 내용 에 따라 hash 값 을 생 성 합 니 다.UglifyJSplugin 압축 을 사용 합 니 다.
UglifyJSplugin 을 통 해 우리 의*.js 파일 을 압축 할 수 있 습 니 다.설치 방법:npm install uglifyjs-webpack-plugin--save-dev.용법
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
module.exports = {
 plugins: [
   new UglifyJSPlugin({
      parallel: 4,
      uglifyOptions: {
        output: {
          comments: false,
          beautify: false,
        },
        compress: {
          warnings: false
        },
      },
      cache: true,
    }),
 ]
}
공공 의존 추출Commons ChunkPlugin 플러그 인 을 사용 하여 여러 js 파일 을 추출 하여 독립 된 파일 을 만 듭 니 다.이 파일 은 공용 모듈 을 포함 하고 있 습 니 다.류 와 같은 뷰 어 는 처음에 한 번 만 불 러 오고 캐 시 를 해서 나중에 사용 할 수 있 습 니 다.새 인터페이스 에 접근 할 때마다 더 큰 파일 을 불 러 오지 않 아 도 됩 니 다.
entry:{
 app:'./entry',
 vendor:['react','other-lib'],
 },
 plugins:[
 new Webpack.optimize.CommonsChunkPlugin({
   name: 'vendor',
 }),
 ]
gzip 압축 열기압축-webpack-plugin 플러그 인 을 사용 하여 압축 합 니 다.설치:npm install compression-webpack-plugin--save-dev.https://webpack.github.io/docs/configuration.html#devtool사용:
const CompressionPlugin = require("compression-webpack-plugin");
plugins:[
new CompressionPlugin({
 asset: '[path].gz[query]', //      。[file]         。[path]           ,[query]          
   algorithm: 'gzip',//  
   test: new RegExp(
     '\\.(js|css)$'  //   js   css
   ),
   threshold: 10240,//           。     
   minRatio: 0.8//                  
})
]
압축 결과:
 
 html 압축 을 열 고 위 에 생 성 된 정적 자원 을 자동 으로 추가 합 니 다.
플러그 인 추가
설치:
 html-webpack-plugin용법:
plugins:[
 new HtmlWebpackPlugin({
   title: '',
     template: __dirname + '/../public/index.html',
     minify: {
       removeComments: true,
       collapseWhitespace: true,
       removeRedundantAttributes: true,
       useShortDoctype: true,
       removeEmptyAttributes: true,
       removeStyleLinkTypeAttributes: true,
       keepClosingSlash: true,
       minifyJS: true,
       minifyCSS: true,
       minifyURLs: true,
     },
     chunksSortMode:'dependency'
   }),
]
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
                이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qiita API v2를 Ajax에서 사용하기위한 webpack 설정 (로컬 개발 환경 전용)에서는 Qiita의 기사 목록, 사용자 세부 정보, 기사를 '좋아요'한 사람 목록 및 재고가 있는 사람 목록을 검색할 수 있습니다. Qiita 화면에서 기사를 재고한 사람을 볼 수 없기 때문에 API를 통해 기사를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.