webpack的学习过程

公司里的项目,都用webpack了,上周忙于完成业务逻辑的实现,对webpack只是有个大概的印象。这周终于有时间来好好学习总结一番了。css

通常状况下学习新的东西,我喜欢去知乎去了解这个技术是用来作什么的、为什么项目里须要用这个技术,而后再去官网学习。不过对于webpack,知乎和官网上都看的一头雾水。html

下面的3个连接,算是我找到的比较好的入门文章了。跟着教程敲了几遍代码,今天就把知识点串一下吧,也加深一下本身对webpack的理解。vue

  1. what is Webpack?
    首先呢,Webpack是开发用的工具。好比Sass, less等css预处理器,好比ES6语法,咱们经过Webpack进行设置后,能够用Sass/less写css,能够直接写ES6语法,而不用管浏览器如何识别——webpack都帮咱们作了。

    上面算是我对Webpack的第一层理解,在此基础上,去看Webpack的相关文章,至少不会一头雾水吧。
    Webpack is a module bundler: A tool that can analyze your project's structure, find JavaScript modules and other assets to bundle and pack them for the browser.
    翻译:webpack是模块打包机,它能够分析你的项目结构,找到JS模块以及其余一些浏览器不能直接运行的部分并进行转化,以便在浏览器里能够使用。
    用户浏览器发起请求,最终获得的只是html, css, js。可是咱们在开发的时候,为了有效迭代和方便维护,渐渐的变成了模块化开发,有了npm来帮咱们管理modules,有了vue, anjular.js等帮咱们组件化开发,有了sass/less让咱们更好的写css,而webpack呢?将咱们用npm + vue + es6等写的代码,打包为浏览器可识别的JS文件(bundle.js)

  2. Configuring Webpack
//Webpack配置
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
  entry: __dirname + "/app/main.js",//惟一入口文件
  output: {
    path: __dirname + "/build",
    filename: "[name]-[hash].js"//打包后的js文件
  },

  module: {
    loaders: [
      {
        test: /\.json$/,
        loader: "json"
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel'
      },
      {
        test: /\.css$/,
        loader: ExtractTextPlugin.extract('style', 'css?modules!postcss')
      }
    ]
  },
  postcss: [
    require('autoprefixer')
  ],

  plugins: [
    new HtmlWebpackPlugin({
      template: __dirname + "/app/index.tmpl.html"
    }),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.optimize.UglifyJsPlugin(),
    new ExtractTextPlugin("[name]-[hash].css")
  ]
} 

 

参考连接node

http://www.pro-react.com/materials/appendixA/react

https://fakefish.github.io/react-webpack-cookbook/Introduction-to-Webpack.htmlwebpack

https://www.zfanw.com/blog/webpack-tutorial.html#i-2git

相关文章
相关标签/搜索