【webpack】学习记录 (二)
来源:互联网 发布:2015中国经济数据公布 编辑:程序博客网 时间:2024/05/29 19:19
- CommonsChunkPlugin
- 安装
- 目录结构
- 脚本
- toolsjs
- contentjs
- mainjs
- indexjs
- webpackconfigjs
- indexhtml测试html
- 命令
- 结果
- HtmlWebpackPlugin
- 参数说明
- 安装
- webpackconfigjs
- templatehtml
- partialhtml
- indexjs
- 结果
上一章讲了webpack的基本用法,其中包括,安装、初始化、简单的demo,那这章来介绍一下进阶的内容
- 公共打包(CommonsChunkPlugin)
- HTML打包(html-webpack-plugin)
- 类库引用(Jquery)
- 脚本压缩(UglifyJsPlugin)
CommonsChunkPlugin
该插件可以把需要公共的脚本打包成一个脚本,如我有两个脚本,同时引用tools.js,会把公共的部分集成出来
安装
无需安装
目录结构
- src
- content.js
- main.js
- tools.js
- index.js
- index.html
- webpack.config.js
脚本
tools.js
module.exports = { writeContent: function (str) { document.write("tools write:" + str); }}
content.js
var tools = require("./tools");tools.writeContent("<h3>I am the content page</h3>");
main.js
var tools = require("./tools");tools.writeContent("<h2>I am the main page</h2>");
index.js
require("./main")require("./content")
webpack.config.js
//采用path插件var path = require('path');var webpack = require('webpack');//合并脚本配置var commonsChunkPlugin = new webpack.optimize.CommonsChunkPlugin({ //生成公共信息 name: 'commons', filename: "commons.js", chunks: ["demo_index", "demo_main", "demo_content"],});//定义了一些文件夹的路径var ROOT_PATH = path.resolve(__dirname);var BUILD_PATH = path.resolve(ROOT_PATH, 'demo/dist');module.exports = { //项目的文件夹 可以直接用文件夹名称 默认会找index.js 也可以确定是哪个文件名字 entry: { demo_index: ['./demo/index'], demo_main: ['./demo/main'], demo_content: ['./demo/content'], }, //输出的文件名 合并以后的js会命名为bundle.js后缀 output: { //demo/dist 生成在该目录下 path: BUILD_PATH, filename: '[name]-bundle.js' }, //添加我们的插件 会自动生成一个html文件 plugins: [ commonsChunkPlugin ]};
index.html(测试html)
只要导入commons.js以及index_demo-budle.js即可
<!DOCTYPE html><html><head> <meta charset="utf-8"/></head><body><script type="text/javascript" charset="utf-8" src="dist/commons.js"></script><script type="text/javascript" charset="utf-8" src="dist/demo_index-bundle.js"></script></body></html>
命令
在项目根目录输入webpack,我是在src下的,可能和上面有点差别
结果
HtmlWebpackPlugin
是用于打包成html的一个插件
参数说明
安装
## 脚本
webpack.config.js
var path = require('path');var HtmlWebpackPlugin = require('html-webpack-plugin');var ExtractTextPlugin = require('extract-text-webpack-plugin');var webpack = require('webpack');//定义了一些文件夹的路径var ROOT_PATH = path.resolve(__dirname);var BUILD_PATH = path.resolve(ROOT_PATH, 'src/app/dist');module.exports = { //项目的文件夹 可以直接用文件夹名称 默认会找index.js 也可以确定是哪个文件名字 entry: { demo_index: ['./src/demo/index'] }, //输出的文件名 合并以后的js会命名为bundle.js output: { path: BUILD_PATH, filename: '[name]-bundle.js' }, //添加我们的插件 会自动生成一个html文件 plugins: [ new HtmlWebpackPlugin({ title: 'Hello HTML app', filename: 'main.html', template: './src/demo/template.html', chunks: ["demo_index"] }), new ExtractTextPlugin('styles.css') ], module: { loaders: [ { //可以在页面中使用加载 test: /\.html$/, loader: "underscore-template-loader" } ] },};
template.html
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title><%= htmlWebpackPlugin.options.title %></title> <meta name="viewport" content="width=device-width, initial-scale=1"></head><body><h2>hello template</h2><button id="ID_btn">我是按钮</button>@require('partial.html')</body></html>
partial.html
<h1>partial.html</h1>
index.js
define("index", ["./student", "../lib/jquery/jquery", "./main", "./content"], function (s, $) { $("#ID_btn").click(function() { s.alert("test btn"); });});
结果
“`
0 0
- 【webpack】学习记录 (二)
- Webpack学习(二)
- 【webpack】学习记录(一)
- vue+webpack学习记录
- webpack 学习记录
- webpack学习记录
- webpack学习记录1
- webpack 学习记录
- 傻瓜式学习webpack(二)——配置webpack
- webpack项目流程学习(二)
- Webpack学习笔记(二)
- webpack打包编译学习记录
- webpack 全程学习记录! (前端自动化构建工具)
- webpack(二)配置
- webpack入门(二)
- Webpack 使用(二)
- webpack学习系列二(https://webpack.js.org/concepts/entry-points/ 翻译)
- 走进webpack—我的webpack学习记录(1)
- ios逆向--theos %c的用法
- CodeForces 712B Memory and Trident
- PHP项目与Ucenter整合
- 第四周项目2-建设“单链表”算法库
- HDU 4609 3-idiots
- 【webpack】学习记录 (二)
- 你不知道的Java笔记6-- Static关键字
- 【bzoj 2121】字符串游戏 (dp)
- Picosso毕加索网络加载图片的框架
- 响应CMFCToolBarComboBoxButton的VK_RETURN事件
- 20ViewPager demo1,2:接收ViewPager展示View的使用
- 软考(一)-软考开始了
- 2016 ACM/ICPC Asia Regional Shenyang Online HDU 5901 Count Primes (模板 + 数论知识)★
- mbed相关资源