从0开始学vuejsWEB前端开发技术杂谈web前端开发,一起交流最cool的技术

学习webpack原来就是SoEasy

2017-03-17  本文已影响3310人  天問_专注于大前端技术
webpack

在前端大行其道的时代,不管是传统PC端应用,还是日益备受青睐的MobileAPP,功能越来越丰富,用户体验越来越好,必然导致业务逻辑越来越复杂,代码越来越多,客户端加载也是越来越慢。为了解决这些问题,便出现了如火如荼的模块化和一系列前端优化工具,webpack就是优化工具其中之一。

webpack是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。本文就简单介绍webpack的基本使用和config配置。

前提:windows下nodenpm环境已经配置OK,cmd命令行node -vnpm -v都能正常显示版本。

安装


    npm i -g webpack
    npm init    //执行命令后一路enter键就OK
    npm i webpack --save-dev
    // 引入app.js
    var str = require('./b.js');
    // 引入外部样式表
    // 没有配置config的加载css的写法
    /*require('!style-loader!css-loader!./css/style.css');*/
    // 配置config之后的写法
    require('./css/style.css');
    document.body.innerHTML = '<h1>'+str+'</h1>';
    module.exports = 'zmnaer.com';
    h1{
        color: #f00;
        font-size: 40px;
    }
    *{
        margin: 0;
        padding: 0;
    }
    body{
        background: #eee;
    }
    webpack app/entry build/build.js

执行结束后就会在build文件夹中生成打包后的build.js


webpack的config配置

在根目录下新建webpack-config.js,之后可在命令中直接输入webpack执行打包。

    var webpack = require('webpack');
    var path = require('path');
    module.exports = {
        entry:'./app/entry.js', // 输出文件入口
        output:{    // 输出路径
            path:__dirname, // 取得当前目录路径
            filename:'./build/build.js' // 输出文件路径、文件名
        },
        module:{    // 加载模块插件
            loaders:[   // 加载器 插件
                {
                    test:/\.css$/,  // 正则匹配css文件
                    loader:['style-loader','css-loader'],   // style css 加载器,顺序不能颠倒,有依赖关系
                    exclude:'/node_module/' // 排除的文件夹
                    /*include:'/app/'       // 多个就用数组*/
                }
            ]
        },
        resolve:{
            extensions:['','.css','.js','.jsx']
        },
        plugins:[   //插件
            new webpack.BannerPlugin('This file is created by auto')
        ]
    };

一、entry入口文件

    entry:{
        module1:'./app/a.js',
        module2:'./app/b.js',
    }

二、loaders(加载器)

在commonJS、AMD、CMD规范下,前端编程逐渐趋向模块化。因此在开发过程中,模块化不仅仅只加载js模块,css、json等模块也同样运用此方法加载。
而webpack默认只能加载js资源文件,如果想要加载其他文件资源,需要用到各种加载器。

1、style-loader和css-loader

加载外联css文件


2、json-loader

加载json文件


3、babel-loader

编译ES6的js文件以及react编译加载


4、postcss-loader和autoprefixer(自动添加前缀的插件)


三、plugins(插件)

1、HtmlWebpackPlugin

2、BannerPlugin


四、webpack-dev-server

webpack-dev-server是一个轻量级的服务器,修改文件源码后,自动刷新页面将修改同步到页面上。


五、package.json命令配置

之后就可以在命令行中输入短小精悍的命令执行相关操作:
1. npm run build
2. npm run build-es6
3. npm run build-react


提示:iinstall的简写,推荐使用

  1. http://webpack.github.io/docs/
  2. https://webpack.js.org/
  3. http://webpackdoc.com/
  4. http://www.cnblogs.com/haogj/p/5160821.html
  5. http://www.jb51.net/article/96646.htm
上一篇下一篇

猜你喜欢

热点阅读