webpack详细配置讲解
//常见的Webpack配置文件
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var CommonsChunkPlugin = require("webpack/lib/optimize/CommonsChunkPlugin");
var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');
module.exports = {
/**
* entry可以是字符串、数组、对象
* string 用来定义入口文件
* array
* object 将不同的文件构建成不同的文件,按需使用
*/
entry:'./js/main.js',
/**
* output参数是对象
*/
output:{
path:'', //打包后文件存放的路径
publicPath: "/static/build/", //webpack-dev-server访问的路径
filename:'', // 打包后的文件名
chunkFilename: "bundle-[id].js" //输出chunk文件名
},
//模块加载器
module:{
noParse: [], // 忽略解析的文件
preLoaders: [{ // 预加载的模块
test: /\.jsx$/,
exclude: /node_modules/,
loader: 'jsxhint-loader'
}],
loaders:[
{
test:/.js$/, // 正则表达式
loader:'babel', // babel加载器
include:_dirname+'/src', //包含什么文件
exclude:'/node_modules/' //什么文件夹除外
},
{
//匹配正则表达式
test: /\.(png|jpg|jpeg)$/,
//限制在8K范围内用url-loader
loader: 'url-loader?limit=8192'
},
//.css 文件使用 style-loader 和 css-loader 来处理
{
test: /\.css$/,
//-loader其实是可以省略不写的,多个loader之间用'!'连接起来
loader: 'style-loader!css-loader'
},
],
},
//显示指出依赖查找路径
resolve:{
//查找module的话从这里开始查找
root: 'E:/github/flux-example/src', //绝对路径
//自动补全请求文件模块后缀 require('common')==require('common.js')
extensions:['','.js','.json','.css'],
//模块别名定义,方便后续直接引用别名,无须多写长长的地址
alias: {
//后续直接 require('AppStore') 即可
AppStore : 'js/stores/AppStores.js',
ActionType : 'js/actions/ActionType.js',
AppAction : 'js/actions/AppAction.js'
}
},
//请求第三方库或API时,不被构建到运行时文件中 申明为外部依赖并指定别名
externals:{
"jquery":"jQuery"
},
//配置引入到项目当中的webpack插件
plugins:[
//给输出的文件头部添加注释信息
new webpack.BannerPlugin('This file is created by zhaoda'),
//提取公用代码块
new CommonsChunkPlugin("admin-commons.js", ["ap1", "ap2"]),
commonsPlugin,
//
new HtmlWebpackPlugin({
template: __dirname + "/app/index.tmpl.html"
}),
//热加载插件
new webpack.HotModuleReplacementPlugin(),
//为组件分配ID
new webpack.optimize.OccurenceOrderPlugin(),
// 压缩js插件
new webpack.optimize.UglifyJsPlugin(),
//生成单独的css文件
new ExtractTextPlugin("[name]-[hash].css")
],
//使用webpack-dev-server,提高开发效率
devServer: {
contentBase: './',
host: 'localhost',
port: 3200, //比如我是监听3200端口
inline: true, //可以监控js变化
hot: true, //热启动
}
}
webpack详细配置讲解的更多相关文章
- webpack详细配置解析
阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本 ...
- 大作!webpack详细配置
webpack学习之旅 好好学习 天天向上!遇到bug,不要慌! 文章目录 webpack学习之旅 大一统的模块化规范--ES6模块化 1.node.js中通过babel体验ES6模块化 2.ES6模 ...
- 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- Webpack安装配置及打包详细过程
引言 前端经过漫长的发展,涌现出了很多实践方法来处理复杂的工作流程,让开发变得更加简便,其中,模块化可以使复杂的程序细化成为各个小的文件,而webpack并不强制你使用某种模块化方案,而是通过兼容所有 ...
- webpack超详细配置, 使用教程(图文)
流程 webpack安装 Step 1: 首先安装Node.js, 可以去Node.js官网下载. Step2: 在Git或者cmd中输入下面这段代码, 通过全局先将webpack指令安装进电脑中np ...
- Webpack的详细配置,[Webpack中各种loader的安装配置]
在使用webpack的时候,你是不是被以下这种报错所困扰: 注意看 黄色框中标注的 You may need an appropriate loader to handle this file typ ...
- 对vue中 默认的 config/index.js:配置的详细理解 -【以及webpack配置的理解】-config配置的目的都是为了服务webpack的配置,给不同的编译条件提供配置
当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面 (环境变量及其基本变量的配置) var path = require('path') ...
随机推荐
- JMeter学习(三十五)使用jmeter来发送json/gzip格式数据
一.使用jmeter来发送gzip数据 有时候我们需要模拟在客户端将数据压缩后, 发送(post)到服务器端. 通常这种情况,会发生在移动终端上. 这样做的好处, 是可以节省流量. 当然, 服务器返 ...
- insert into linksvr or insert into from linksvr
通过链接服务器将实例A上的数据写入实例B,通常有以下两种方式--方案1:在实例A上执行insert into LinkForB.B..TableB select * from TableA--方案2: ...
- socket编程进阶
1. 动态导入模块 第一种方法(python解释器自己内部用的): 上图是我程序的目录结构 下面代码是动态导入模块3.py的源码: #AUTHOR:FAN lib_dir = __import__ ...
- 使用EF Oracle实现DevExpress绑定大数据的ServerMode模式
前提:需要引入EntityFramework组件,注意几个使用点后使用上其实比较简单. 一.引入Oracle EF支持组建 1.可手动引入附件中的DLL(需手动合并web.config配置) 2.也可 ...
- Leetcode: Find Leaves of Binary Tree
Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all leaves ...
- c/c++ qsort 函数的简单使用(1)
#include <stdio.h> #include <stdlib.h> //打印数组元素 void print(int arr[], int n){ ; i < n ...
- ASCII码表(二进制 十进制 十六进制)
css里,允许使用转义字符\+ascii16进制形式; 例如: e的ascii 16进制是65,我们就写为\65 expression -> expr\65ssion 二进制 十进制 十六进制 ...
- ES5和ES6中的继承 图解
Javascript中的继承一直是个比较麻烦的问题,prototype.constructor.__proto__在构造函数,实例和原型之间有的 复杂的关系,不仔细捋下很难记得牢固.ES6中又新增了c ...
- Hadoop:部署Hadoop Single Node
一.环境准备 1.系统环境 CentOS 7 2.软件环境 OpenJDK # 查询可安装的OpenJDK软件包[root@server1] yum search java | grep jdk... ...
- HttpClient——Get,Post
package com.ch.day5_httpclient; import java.util.List; import com.ch.myutils.NetWorkUtil; import com ...