WebPack打包React項(xiàng)目, 減小打包后生成的js文件.

具體思路

  • 1: 分離出業(yè)務(wù)代碼和第三方庫(kù)

  • 2: 分離css

  • 3: 清除打包后的文件中的注釋, 和copyright信息

  • 4: 引入的React切換到產(chǎn)品版本
    如果引入的React沒有切換到產(chǎn)品版本,React給出了下面的Warning

Warning: It looks like you’re using a minified copy of the development build of React. When deploying React apps to production, make sure to use the production build which skips development warnings and is faster. See http://facebook.github.io/react/downloads.html for more details.
```

方法

1:分離出業(yè)務(wù)代碼和第三方庫(kù)

這里分別把 使用的 react, react-dom, jquery, react-router, 第三方庫(kù)提了出來(lái)單獨(dú)生成文件vendor.js

  entry: {
    bundle: path.join(__dirname, '../src/index'),
    vendor: ['react', 'react-dom', 'jquery','react-router']
  },

  plugins: [
    new webpack.optimize.CommonsChunkPlugin('vendor',  'vendor.js'),
  ]
2:分離css

首先安裝依賴: extract-text-webpack-plugin,

# 查看webpack版本, 如果高版本執(zhí)行命令: 
npm install --save-dev extract-text-webpack-plugin

# 低版本 執(zhí)行命令:  (我版本是: `1.13.1` 執(zhí)行的是低版本配置) 
npm install --save-dev extract-text-webpack-plugin@1.0.1

之后在webpack中進(jìn)行配置

**注意: ** 例子中配置中{publicPath: './'} 不是必填項(xiàng), 我這里是為了解決背景圖片打包或路徑不正確的問題, 具體請(qǐng)查看

const ExtractTextPlugin = require('extract-text-webpack-plugin');

  loaders: [
      {
        test: /\.less/,
        loader: ExtractTextPlugin.extract("style-loader", "css-loader!less-loader",{publicPath: './'})
      },

    ],
  // 打包后生成 styles.css 文件
  plugins: [
      new ExtractTextPlugin("style.css"),
    ],
  
3: 清除打包后的文件中的注釋, 和copyright信息
let webpack = require('webpack');

  plugins: [
         new webpack.optimize.UglifyJsPlugin({           //清除打包后文件中的注釋,和copyright信息
            output: {
              comments: false,
            },
            compress: {
              warnings: false
          }
        }),
    ],
4: 引入的React切換到產(chǎn)品版本
plugins: [
    new webpack.DefinePlugin({                                        // 把引入的React切換到產(chǎn)品版本
      'process.env.NODE_ENV': '"production"'
    }),
]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 無(wú)意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,227評(píng)論 7 35
  • GitChat技術(shù)雜談 前言 本文較長(zhǎng),為了節(jié)省你的閱讀時(shí)間,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,715評(píng)論 7 110
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,288評(píng)論 25 708
  • 一、產(chǎn)品信息 產(chǎn)品名稱:漢字王國(guó) 開發(fā)商:深圳墨齊致知網(wǎng)絡(luò)科技有限公司 網(wǎng)址:http://www.morechi...
    cckobe閱讀 923評(píng)論 0 2
  • 我真的怕死了,我用自己的完美的舌頭,一天無(wú)數(shù)遍的巡檢自己的牙齒,牙齒縫,我在盤算什么時(shí)候會(huì)掉光,什么時(shí)候我會(huì)死。 ...
    蘇田田閱讀 247評(píng)論 0 0