Webpack系列目录
Webpack系列2: webpack简介安装
网络包系列3:网络包如何与第三方js库集成
Webpack系列4: webpack多页支持公共组件单独打包
网络包系列五:网络包加载器模块加载器
Webpack系列6:前端项目模板-webpack大口实现自动构建部署
基于webpack构建纯静态页面前端工程解决方案模板。见github : https://github.com/ifengkou/webpack-template的最终形式源代码
主体
本文主要介绍如何集成常见的js库,以avalon和jquery为例,同样可以扩展到其他js库。更多高级功能请参见后续文章。更多高级功能请参见后续文章
Avalon在中国是一个轻量级的MVVM js框架,但不限于此。
集成avalon
MVVM框架Avalon用于该项目。webpack兼容各种加载器(AMD、CMD),常用的avalon.js是自带的加载器。当avalon与webpack打包在一起时,avalon只能选择垫片版本而不能选择加载器,而avalon目前只有垫片版本1.4,无法通过NPM安装,所以必须从github下载Avalon的垫片版本。Avalon1.4有三个版本,可以根据项目需要下载相应的垫片版本到项目中:
Avalon.js支持IE6和现代浏览器avalon.modern.js适用于IE10和HTML5标准浏览器avalon.mobile.js支持移动设备的基础设施和准备(增加了Touch Event、Pointer、Event、fastclick)
首先,安装npm,然后安装webpack
Npm安装webpack -g新项目,项目的目录结构描述。 package.json #项目配置 src #源目录pageA.html #条目文件apageB.html #条目文件b css/# css资源 img/#图片该jsx资源page a . js # a页面条目page b . js # b页面条目lib/#不存储在npm的第三方库中或下载并存储在本地例如,jQuery、Zepto、Avalon 路径图。JSON #手动配置一些模块的路径,可以加快& webpack的编译速度。配置。JS # WebPack配置条目创建一个新的package.json文件,并复制以下内容来执行npm安装
{ 'name': 'webpack-template ',' version': '1.0.0 ',' description ' : ' web pack-template ' ' scripts ' : { ' test ' : ' echo ' error :未指定测试' exit 1' },' author ' : ' sloong ',' license': 'MIT ',' devdependencies ' : { ' CSS-loader ' 3: '^0.21.0',File-loader '
1.将下载的avalon.shim.js放在src/js/lib下(jquery,zepto以同样的方式)
2.在src目录中添加pathmap.json,手动配置部分模块的路径,可以加快webpack的编译速度
{ ' Avalon ' : ' js/lib/Avalon . shim . JS ' }注意:其他依赖JS的模块都是一样的,比如avalon jquery(或者zepto等。)
{ ' jquery ' : ' js/lib/jquery-1 . 12 . 4 . js ',' Avalon ' : ' js/lib/Avalon . shim . js ' } 3。配置webpack.config.js
var web pack=require(' web pack ');var path=require(' path ');var pathMap=require('。/src/path map . JSON ');var srcDir=path . resolve(process . CWD(),' src ');var nodeModPath=path . resolve(_ _ dirname,'。/node _ modules’);模块。exports={entry: '。/src/js/index.js ',//entry js可以是数组output 3360 { path : path . join(_ dirname,' dist '),filename:' bundle.js'}。module : { loaders : [{ test :/。css$/,loader: 'style-loader!css-loader'} ]},resolve : { extension s 3360[]。js ','','。css'],root: [srcDir,nodeModPath],alias: pathMap,PublicPath: '/'}}4。新index.html,引用dist/bundle.js(webpack将解析条目文件index.js并将所有依赖项打包到bundle.js中)
!doctype html townleta charset=' utf-8 ' title test Avalon/title/head dy div ms控制器=' Avalon ctrl ' h1 { { name } }/h1/div script src=' http 3360-什么/dist/bundle。js '/脚本/正文/html 5 .你好index.js(索引。js ).吴亚玲吴亚玲联署材料对,-什么要求(“3rd-jslib”)贺尔菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲阿菲,web包云娥与云娥同在lib(库)阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖阿祖联署材料诶哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟
var avalon=要求(“阿瓦隆”);阿瓦隆.定义({ $ id : ' avalonctrl,name : ' hello avalon!'});//jquery阿云var $=要求(“jquery”)$(“div贺盛瑞jquery-jquery-jquery-jquery-jquery-jquery-jquery-jquery高丽高丽/div ').附录(' body')6 .唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟,唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟网页包19
$网络包
7.唉哟web包开发服务器,日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日http://本地主机:8080/web pack-dev服务器/src/index.html
$ webpack-dev服务器
好吧,阿巧
朱塞佩朱塞佩朱塞佩朱塞佩,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲,吴亚玲吴亚玲吴亚玲。