Webpack 是一个强力的模块打包器。 所谓 包 (bundle) 就是一个 JavaScript 文件,它把一堆 资源 (assets) 合并在一起,以便它们可以在同一个文件请求中发回给客户端。 包中可以包含 JavaScript 、 CSS 样式、 HTML 以及很多其它类型的文件。

1、安装

//全局安装
npm install -g webpack
//安装到你的项目目录
npm install --save-dev webpack

我们通过一个 JavaScript 配置文件 webpack.config.js 来决定 Webpack 做什么以及如何做。

2、入口与输出

entry: {
app: 'src/app.ts'
}

Webpack 探查那个文件,并且递归遍历它的 import 依赖。

output: {
filename: 'app.js'
}

这个 app.js 输出包是个单一的 JavaScript 文件,它包含程序的源码及其所有依赖。 后面我们将在 index.html 中用 <script> 标签来加载它。

3、多重包

entry: {
app: 'src/app.ts',
vendor: 'src/vendor.ts'
}, output: {
filename: '[name].js'
}

在输出文件名中出现的 [name] 是一个 Webpack 的 占位符 ,它将被替换为入口点的名字,分别是 app 和 vendor

4、加载器

loaders: [
{
test: /\.ts$/
loaders: 'ts'
},
{
test: /\.css$/
loaders: 'style!css'
}
]

当 Webpack 遇到像这样的 import 语句时……

import { AppComponent } from './app.component.ts';
import 'uiframework/dist/uiframework.css';

它会使用 test 后面的正则表达式进行模式匹配。  

5、插件

plugins: [
new webpack.optimize.UglifyJsPlugin()
]

我们已经了解webpack的基本配置了,那么我们开始

6、完整配置

module.exports =  {
entry: './index.js',
devtool: 'source-map',
output: {
filename: '[name].js'
},
resolve: {
alias:{ jquery: 'src/lib/jquery.js', }
},
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
_: 'underscore',
React: 'react'
}),
new WebpackNotifierPlugin()
],
module: {
loaders: [{
test: /\.js[x]?$/,
exclude: /node_modules/,
loader: 'babel-loader'
}, {
test: /\.less$/,
loaders:['style-loader', 'css-loader','less-loader']
}, {
test: /\.(png|jpg|gif|woff|woff2|ttf|eot|svg|swf)$/,
loader: "file-loader?name=[name]_[sha512:hash:base64:7].[ext]"
}, {
test: /\.html/,
loader: "html-loader?" + JSON.stringify({minimize: false })
} ]
}
};

  

  

  

  

  

WEBPACK简介的更多相关文章

  1. Webpack 2 视频教程 001 - Webpack 简介

    这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲解的. 这个基本就是目前 ...

  2. webpack简介与使用

    欢迎小伙伴们为 前端导航仓库 点star https://github.com/pfan123/fr...前端导航平台访问 CommonJS 和 AMD 是用于 JavaScript 模块管理的两大规 ...

  3. 前端工程化-webpack简介(一)

    本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependenc ...

  4. Vue.js——60分钟webpack项目模板快速入门

    概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify ...

  5. webpack常用配置总结

    1. webpack简介 webpack 是一个模块打包工具.它使得模块相互依赖并且可构建等价于这些模块的静态资源.相比于已经存在的模块打包器(module bundler),webpack的开发动机 ...

  6. webpack使用笔记

    webpack简介 CommonJS和AMD是用于JavaScript模块管理的两大规范,前者定义的是模块的同步加载,主要用于NodeJS:而后者则是异步加载,通过requirejs等适用于前端.np ...

  7. Vue.js——webpack

    Vue.js——60分钟webpack项目模板快速入门 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开 ...

  8. 如何开发webpack loader

    关于webpack 作为近段时间风头正盛的打包工具,webpack基本占领了前端圈.相信你都不好意思说不知道webpack. 有兴趣的同学可以参考下我很早之前的webpack简介 . 确实webpac ...

  9. webpack模块化管理和打包工具

    Webpack简介 webpack是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.还可以将按需加载的模块进行代码分隔,等到实际 需要的 ...

随机推荐

  1. Oracle SQL性能优化(转)

    (1)      选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table ...

  2. get------引用接口

    关于引用接口   1.    通过get方式 2.   String  poiUrl="http://接口地址?接口ID=接口给你的ID&参数1=?&参数2=?&参数 ...

  3. <%@page contentType="text/html;charset=gbk"%>与<meta http-equiv="Content-Type" content="text/html; charset=GBK">区别

    前一个是在服务端起作用,是告诉应用服务器采用何种编码输出JSP文件流,后一个是在客户端起作用,是告诉浏览器是采用何种编码方式显示HTML页面.     前者由jsp引擎对输出内容进行编码, 后者将由I ...

  4. Python第三方包的安装和管理

    要想安装第三方的包,首先安装setuptools. 然后再安装pip,这个是用来管理第三方包的. 1. 包管理器pip,安装第三方包,以Selenium为例,运行 pip install seleni ...

  5. 在chrome 总调试cordova出现Detached from the target. Remote debugging has been terminated with reason: Connection lost. Please re-attach to the new target

    在chrome 总调试cordova出现如下错误: "Detached from the target. Remote debugging has been terminated with ...

  6. 安装Linux 16.04 时,选择好分区后,进到选择地点的界面后,总是闪退,退到最原始的界面

    这两天装 Linux 系统,总是遇到一个很蛋疼的问题: 当你累死累活把分区什么的都设置好了之后,在输入了系统名字,开机密码那几项之后,再选择地点的时候(如:选择 "上海"),然后就 ...

  7. NSSM - windows 服务安装工具

    nssm  windows 服务安装工具,简单方便, windows service wrapper 也是一个类似的工具,但是需要进行配置文件编写= 下载的地址: http://nssm.cc/rel ...

  8. 一条SQL查询多个统计结果

    例如以下情况,假如字段3是日期类型,按照小时分组统计字段1为空的个数,并对字段2大于5的值求和: SELECT SUM(CASE WHEN field1 IS NULL THEN 1 ELSE 0 E ...

  9. C#调试器导航

    本快速入门演示如何在 Visual Studio 调试会话中导航,以及如何在会话中查看和更改程序状态. 本 快速入门适用于不熟悉用 Visual Studio 进行调试的开发人员,以及要详细了解在 V ...

  10. 【MySQL】漫谈MySQL中的事务及其实现

    最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySQL,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的 ...