【webpack】学习记录 (二)
2016-09-19 19:50
676 查看
CommonsChunkPlugin
安装
目录结构
脚本
toolsjs
contentjs
mainjs
indexjs
webpackconfigjs
indexhtml测试html
命令
结果
HtmlWebpackPlugin
参数说明
安装
webpackconfigjs
templatehtml
partialhtml
indexjs
结果
上一章讲了webpack的基本用法,其中包括,安装、初始化、简单的demo,那这章来介绍一下进阶的内容
公共打包(CommonsChunkPlugin)
HTML打包(html-webpack-plugin)
类库引用(Jquery)
脚本压缩(UglifyJsPlugin)
content.js
main.js
tools.js
index.js
index.html
webpack.config.js
## 脚本
“`
安装
目录结构
脚本
toolsjs
contentjs
mainjs
indexjs
webpackconfigjs
indexhtml测试html
命令
结果
HtmlWebpackPlugin
参数说明
安装
webpackconfigjs
templatehtml
partialhtml
indexjs
结果
上一章讲了webpack的基本用法,其中包括,安装、初始化、简单的demo,那这章来介绍一下进阶的内容
公共打包(CommonsChunkPlugin)
HTML打包(html-webpack-plugin)
类库引用(Jquery)
脚本压缩(UglifyJsPlugin)
CommonsChunkPlugin
该插件可以把需要公共的脚本打包成一个脚本,如我有两个脚本,同时引用tools.js,会把公共的部分集成出来安装
无需安装目录结构
srccontent.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的一个插件参数说明
参数名 | 备注 |
---|---|
title | 生成页面标题 |
filename | 生成文件名字,默认assets/admin.html |
template | 模板路径 |
favicon | 页面图标地址 |
hash | css是否进行hsash值存储,默认true |
chunks | 对哪些块进行加入,默认全部entry,数组 |
excludeChunks | 移除哪些块 |
安装
命令 | 说明 |
---|---|
npm install html-loader –save-dev | html加载器 |
npm install extract-text-webpack-plugin –save-dev | 文本加载器 |
npm install underscore-template-loader –save-dev | 模板导入加载器 |
npm install lodash –save-dev | 依赖脚本 |
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"); }); });
结果
“`
相关文章推荐
- 【webpack】学习记录 (二)
- Webpack学习笔记与填坑记录
- Webpack2学习记录-2
- webpack 学习记录
- webpack 学习记录
- 学习webpack记录(三)
- 【webpack】学习记录 (一)
- 走进webpack—我的webpack学习记录(1)
- 学习记录 - react:[一 ] webpack 解析 react
- 学习webpack记录(一)
- Webpack学习记录(一)模块热替换
- webpack打包编译学习记录
- webpack学习遇到大坑(纯属自己记录)
- 【webpack】学习记录(一)
- vue+webpack学习记录
- 《JavaScript权威指南》----第13章 Web浏览器中的JavaScript(2) 学习记录
- Tomcat源码学习记录--web服务器初步认识
- JAVA_WEB Oracle 10g学习: PL/SQL集合与记录
- Web学习记录
- 记录学习JavaWeb的点点滴滴(1)