WebpackReact Native开发经验集

WebPack打包React项目, 减小打包后生成的js文件.

2017-04-15  本文已影响1898人  有情怀的程序猿

具体思路

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:分离出业务代码和第三方库

这里分别把 使用的 react, react-dom, jquery, react-router, 第三方库提了出来单独生成文件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版本, 如果高版本执行命令: 
npm install --save-dev extract-text-webpack-plugin

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

之后在webpack中进行配置

**注意: ** 例子中配置中{publicPath: './'} 不是必填项, 我这里是为了解决背景图片打包或路径不正确的问题, 具体请查看

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切换到产品版本
plugins: [
    new webpack.DefinePlugin({                                        // 把引入的React切换到产品版本
      'process.env.NODE_ENV': '"production"'
    }),
]
上一篇下一篇

猜你喜欢

热点阅读