webpack 安装

基本命令

      webpack         // 最基本的启动webpack的方法
      webpack -w      // 提供watch方法;实时进行打包更新
      webpack -p      // 对打包后的文件进行压缩
      webpack -d      // 提供source map,方便调式代码

全局安装

      # npm install webpack -g
      项目安装:
      # 进入项目目录
      # 确定已经有 package.json,没有就通过 npm init 创建
      # 安装 webpack 依赖
      # npm install webpack --save-dev

使用ES6

    安装 babel-loader: 
    # npm install babel-loader --save-dev
    安装转码规则:       
    # npm install babel-preset-es2015 --save-dev
    ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个
    # npm install --save-dev babel-preset-stage-0
    # npm install --save-dev babel-preset-stage-1
    # npm install --save-dev babel-preset-stage-2
    # npm install --save-dev babel-preset-stage-3
    参考格式:
    {
        test: /\.js$/,
        loader: 'babel?presets[]=es2015,presets[]=stage-0'
    }

编译css

    安装css-loader:  
    # npm install css-loader  --save-dev
    安装style-loader  
    # npm install style-loader  --save-dev
    参考格式:
    {
        test: /\.css$/,
        loaders: ['style', 'css', 'autoprefixer']
    }

编译less

    # npm install less --save-dev
    安装less-loader: 
    # npm install less-loader --save-dev
    参考格式:
    {
        test: /\.less/,
        loaders: ['style', 'css', 'autoprefixer', 'less'],
    }

使用autoprefixer自动补上浏览器兼容

    # npm install autoprefixer-loader --save-dev
    参考格式:
    {
        test: /\.css$/,
        loaders: ['style', 'css', 'autoprefixer']
    }, {
        test: /\.less/,
        loaders: ['style', 'css', 'autoprefixer', 'less'],
    }

编译文件

    安装file-loader: 
    # npm install file-loader --save-dev
    参考格式:
    {
        test: /\.(eot|woff|svg|ttf|woff2|gif)(\?|$)/,
        loader: 'file-loader?name=[hash].[ext]'
    }

编译图片

  # npm install url-loader --save-dev
  参考格式:
  {
  test: /\.(png|jpg)$/,
  loader: 'url?limit=1200&name=[hash].[ext]'
  }

编译JSX

  # npm install jsx-loader --save-dev
  # npm install babel-preset-react --save-dev
  参考格式:
  {
  test: /\.jsx$/,
  loaders: ['jsx', 'babel?presets[]=es2015,presets[]=stage-0,presets[]=react']
  }

示例源码

在项目目录下,新建一个webpack.config.js文件,把下面代码复制进去,然后在新建一个app.js和index.js文件,写上console.log('你好世界');
执行命令:webpack 然后找到build目录就看到编译后的文件了
  var webpack = require('webpack');
  
  module.exports = {
      entry: {
          app: './app', //编译的入口文件
          index: './index', //编译的入口文件
      },
      output: {
          publicPath: '/build/', //服务器根路径
          path: './build', //编译到当前目录
          filename: '[name].js' //编译后的文件名字
      },
      module: {
          loaders: [{
                  test: /\.js$/,
                  loader: 'babel?presets=es2015'
              }, {
                  test: /\.css$/,
                  loaders: ['style', 'css', 'autoprefixer']
              }, {
                  test: /\.less/,
                  loaders: ['style', 'css', 'autoprefixer', 'less'],
              }, {
                  test: /\.(eot|woff|svg|ttf|woff2|gif)(\?|$)/,
                  loader: 'file-loader?name=[hash].[ext]'
              }, {
                  test: /\.(png|jpg)$/,
                  loader: 'url?limit=1200&name=[hash].[ext]' //注意后面那个limit的参数,当你图片大小小于这个限制的时候,会自动启用base64编码图片
              }
          ]
      },
      plugins: [
              new webpack.optimize.CommonsChunkPlugin('common.js') //将公用模块,打包进common.js
      ],
      resolve: {
          extensions: ['', '.js', '.jsx'] //后缀名自动补全
      }
  };

 

posted @ 2017-05-19 17:25  zero7酱紫  阅读(184)  评论(0编辑  收藏  举报