详解用webpack把我们的业务模块分开打包的方法
作者:学习笔记666 发布时间:2024-04-27 15:18:07
标签:webpack,模块,打包
webpack我自己还在摸索学习中,今天给大家分享个用webpack把我们的业务模块分开打包的方法,顺便留个笔记
如何用webpack打包这3个js?
只需修改webpack的配置文件webpack.config.js:
// entry是入口文件,可以多个,代表要编译那些js
entry:['./src/main.js','./src/login.js','./src/reg.js'],
这样就可以全部打包,最终生成./build/js/build.js
1,那么如果我们想最后生成不同的文件,该如何做到呢?
今天我们就要用到webpack的模块拆分插件
entry:
{
'main':'./src/main.js',
'user':['./src/login.js','./src/reg.js']
},
拆分模块:login.js和reg.js我们都定义给user节点,那么下面我们就来把这个user节点单独打包,核心代码:
// 拆分插件
new webpack.optimize.CommonsChunkPlugin({
name:'user', // 上面入口定义的节点组
filename:'build-user.js' //最后生成的文件名
}),
webpack.config.js全部代码:
var HtmlWebpackPlugin = require('html-webpack-plugin');
var webpack = require('webpack');
module.exports = {
// entry是入口文件,可以多个,代表要编译那些js
//entry:['./src/main.js','./src/login.js','./src/reg.js'],
entry:
{
'main':'./src/main.js',
'user':['./src/login.js','./src/reg.js']
},
output:{
path: __dirname+'/build/js', // 输出到那个目录下(__dirname当前项目目录)
filename:'build.js' //最终打包生产的文件名
},
plugins:[
new HtmlWebpackPlugin({
filename: __dirname+'/build/html/login-build.html',
template:__dirname+'/src/tpl/login.html',
inject:'head',
hash:true
}),
// 拆分插件
new webpack.optimize.CommonsChunkPlugin({
name:'user', // 上面入口定义的节点组
filename:'build-user.js' //最后生成的文件名
}),
]
};
然后再来看看html模板文件的变化:
那么如何打包jQuery呢?
事实上,jQuery这样的库我们生产环境肯定要使用CDN,而不会和我们的业务模块打包打一起。
比如国内的CDN地址: http://cdn.bootcss.com/jquery/1.12.4/jquery.js
externals:{
‘jquery':'jQuery'
},
1.源模板文件login.html引入jq
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<scritp src="http://cdn.bootcss.com/jquery/1.12.4/jquery.js"></scritp>
</head>
<body>
<h2>用户登录</h2>
<p>用户名:</p>
<p><input type="text" name="username" id="username" /></p>
<p>密码:</p>
<p><input type="password" name="pwd" id="pwd" /></p>
<p><button id="loginBtn">登录</button></p>
</body>
</html>
2.修改webpack配置文件:
var HtmlWebpackPlugin = require('html-webpack-plugin');
var webpack = require('webpack');
module.exports = {
// entry是入口文件,可以多个,代表要编译那些js
//entry:['./src/main.js','./src/login.js','./src/reg.js'],
entry:
{
'main':'./src/main.js',
'user':['./src/login.js','./src/reg.js']
},
externals:{
'jquery':'jQuery'
},
output:{
path: __dirname+'/build/js', // 输出到那个目录下(__dirname当前项目目录)
filename:'build.js' //最终打包生产的文件名
},
plugins:[
new HtmlWebpackPlugin({
filename: __dirname+'/build/html/login-build.html',
template:__dirname+'/src/tpl/login.html',
inject:'head',
hash:true
}),
// 拆分插件
new webpack.optimize.CommonsChunkPlugin({
name:'user', // 上面入口定义的节点组
filename:'build-user.js' //最后生成的文件名
}),
]
};
3.执行webpack命令后,打包的js中并不会包含jquery源码,因为我们要使用外部cdn,同样打包后的html模板中也引入了jquery
来源:http://blog.csdn.net/github_26672553/article/details/52269158


猜你喜欢
- python 的PIL安装是一件很头疼的的事, 如果你要在python 中使用图型程序那怕只是将个图片从二进制流中存盘(例如使用Scrapy
- 在python中使用socket进行linux服务器与win10主机间的图像传输,供大家参考,具体内容如下前提:服务器与主机需要在同一局域网
- javascript动画效果 打开层/关闭层:运行代码框<!DOCTYPE html PUBLIC "-//W3C//DTD
- 由于新版站长资讯即将发布,我每天都在想如何防止采集,目前想到的几种办法:1、多做几个列表和内容模板,随机使用,对目前大多数cms来说,这种方
- 单测框架的作用测试发现:从多个文件中寻找测试用例。测试执行:按照一定顺序去执行并且生成结果。测试断言:判断最终结果与实际结果的差异。测试报告
- Go批处理语句用于同时执行多个语句使用、切换数据库use mastergo创建、删除数据库方法1、--判断是否存在该数据库,存在就删除if
- 介绍Django是一个Web框架——一套用于帮助开发交互式网站的工具。Django能够响应网页请求,还能让我们更轻松地读写数据库、管理用户等
- 本文实例为大家分享了python七夕浪漫表白的具体代码,供大家参考,具体内容如下from turtle import *from time
- 关于Java和Mysql 8.0.18版本的连接方式,供大家参考,具体内容如下1.官网下载mysql-server.(Connector/J
- 一、基本结构语句一)、条件语句age = int(input("请输入你家狗狗的年龄: "))print("&
- Dreamweaver中一直变色的超级链接,css+javascript实现超级链接变色,当鼠标移动到链接上时,链接的颜色不停闪烁变色。&l
- 利用Chrome或Firefox保存的Har文件http/https请求,可用于遍历字典提交From表单.少说废话直接上代码Github地址
- 远程服务器配置可以使得数据库管理员在服务器以外的主机上连接到一个SQL Server实例,以便管理员在没有建立单据连接的情况下在其他的SQL
- 第一步:升级pythonCentOs 6.x的系统默认安装的Python版本是2.6.x,想升级到Python2.7.x,从官方下载源文件,
- 编码格式常见的编码格式:Python的解释器使用的是Unicode(内存).py文件在磁盘上使用UTF-8(外存)更改编码格式一般形式为在程
- python提取特定时间段内的数据尝试一下:data['Date'] = pd.to_datetime(data['
- 最近在研究网页的切片算法,很可能很多人不知道什么是切片算法,其实这是一种面向搜索引擎的网页分块、切片的原理,目前随着工作的深入,逐渐碰到了各
- 使用matplotlib创建百分比堆积柱状图的思路与堆积柱状图类似,只不过bottom参数累计的不是数值而是百分比,因此,需要事先计算每组柱
- 这学期在学python,感觉想写一个东西来巩固自己的基础,因为大二的时候我看过python,所以还是一共花了几个小时写了一个基于mysql的
- 如何制作一个倒计时的程序? 见下:<%CountdownDate = #1/1