webpack使用总结

    我刚开始使用webpack是一种痛苦体验,我感觉到webpack的各种凌乱。不过等我等我理清思路之后。总的一句话:本质上,就是输出html、 css、 js、 img文件的过程。要想弄懂webpack,首先得弄懂webpack的webpack.config.js配置文件是至关重要的。

配置文件重要的几个属性  :1、entry     2、output  3、module    4、externals   5、plugins,

配置步骤如下

1.下载module模块,代码npm init

2.建立Webpack.config.js

①对js的打包,entry  ==> output==>js/*.js

②对Css的单独打包extractTextplugin  ==>css/*.css

③对css通用样式的打包commonChunkplugin          ==>css/base.css

④对html的打包html-webpack-plugin ==>view/*.html

⑤html引入css和js  htmlwebpackpluginchunks:['common',name]

⑥引入字体,图片等资源,用url-loader

⑦配置Webpack-dev-server的inline模式:

    1.Html文件添加webpack-dev-server/client?http://localhost:8088/

2.配置环境变量:

   var WEBPACK_ENV = process.env.WEBPPACK_ENV || 'dev';

    console.log(WEBPACK_ENV);

3.window系统配置文件package.json的script,添加

    "dev_win": "set WEBPACK_ENV=dev && webpack-dev-server --inline --port 8088",



配置代码如下


'use strict';

var webpack = require('webpack');

var HtmlWebpackPlugin = require('html-webpack-plugin');

//配置环境变量

var WEBPACK_ENV = process.env.WEBPPACK_ENV || 'dev';

console.log(WEBPACK_ENV);

//css单独打包插件

var ExtractTextPlugin = require("extract-text-webpack-plugin");

var getHtmlConfig    = function(name ,title){

//html配置

return {

template    : './src/view/' + name + '.html',//html入口

filename    : 'view/' + name + '.html',//html出口

title      : title,//首页标题

inject      : true,

hash        : true,

chunks      : ['common', name]//添加css/js--------common代表通用样式css,name代表对应css和js的文件

};

};

var config = {

entry: {

common : ['./src/page/common/index.js'],//js入口

index  : ['./src/page/index/index.js'],

login  : ['./src/page/login/index.js']

},

output: {

path      : './dist',//打包存放的地址,

publicPath : '/dist',//访问地址

filename  : 'js/[name].js'//js出口

},

externals : {

jquery : 'window.jquery'//jquery的引用

},

module: {

//css样式的loader

loaders: [

{ test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader","css-loader")},

//字体、图片的处理loader

{ test: /\.(gif|png|jpg|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=100&name=resource/[name].[ext]'}

]

},

plugins :[

//css单独样式的处理

new ExtractTextPlugin('css/[name].css'),//css出口

//css公共样式的处理

new webpack.optimize.CommonsChunkPlugin({

name    : 'common',

filename : 'js/base.js'

}),

new HtmlWebpackPlugin(getHtmlConfig('index', '首页')),//html总出口

]

};

if('dev' === WEBPACK_ENV){

config.entry.common.push('webpack-dev-server/client?http://localhost:8088/');

}

module.exports = config;



以上仅为个人学习总结,精工学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,253评论 7 35
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,721评论 7 110
  • 原文http://www.cnblogs.com/libin-1/p/6596810.html 版本号 vue-c...
    tengrl阅读 3,726评论 0 0
  • 今天朋友带着她的一个朋友突然拜访,问她近况才知道她目前主要在做一个品牌的直销产品,带着的这位是她的上级。 一路聊的...
    巧悦姐姐rose阅读 510评论 0 2