angular+webpack2实战例子


Posted in Javascript onMay 23, 2017

之前研究过webpack但是一直没用过,这次公司要做一个h5网站,正好拿来练练手,话说angular1x对移动端不是很友好,但主要是angular1x比较熟悉,上手快,开发也快,就没去考虑其他前端mvc框架。

好了webpack出了中文版以后,对于我们这些英语不是很好的来说真的是太棒了,话说angularjs啥时候也出个中文文档就更好了,webpack官网:https://doc.webpack-china.org/

右上角可以选择语言。

开始之前先看一下目录文件:

angular+webpack2实战例子

第一步:

首先要使用webpack需要先安装webpack,官网给出了好几中安装方式,就不多说了:

npm install --global webpack

因为我用的是webpack2 所以需要注意版本1x 到 2x 的配置差异,这里官网也给出了详细差异:https://doc.webpack-china.org/guides/migrating/

第二步webapck配置webpack.config.js:

const webpack = require('webpack'); //to access built-in plugins
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

const config = {
  entry: './app/app.js',
  output: {
  path: path.resolve(__dirname, 'dist'),
  filename: 'bundle-[chunkhash].js',
  publicPath: "/mobile/dist/"
 },
 module: {
  rules: [
  {
    test: /\.(js|jsx)$/, 
    use: 'babel-loader'
  },
 
  {
   test: /\.css$/,
   use: ['style-loader','css-loader']
  },

 {
  test: /\.(png|jpg|jpeg|gif|woff)$/, 
  use: 'url-loader?limit=4192&name=[name].[ext]' 
 },

 ]
},
 plugins:[
  new HtmlWebpackPlugin({        //自动生成Html
    template:'./app/view/index.html',
    filename:'../app/index.html',
    inject:'body'
  })
]
};

module.exports = config;

这里需要说的是entry: './app/app.js' 是入口文件,所有的 js代码都通过入口文件加载,我这里就只用了 app.js ,但是也可以设置多个入口文件。

output: 设置输出的路径和文件,这里我是将所有的 js 压缩到了bundle.js中,这里也是可以设置压缩到多个文件的,文件后面我设置了 hash 值主要考虑浏览器缓存问题,module: 就是配置js css html 打包压缩的规则,这里写法和 webpack1x 有较大差异,还需注意。

plugins: 插件,webpack 有很多内置插件,HtmlWebpackPlugin  是动态生成html的一个内置插件,主要的作用是可以动态的把压缩后带有 hash 值的js动态插入到 html 中。

配置就暂时说到这里,然后再看看我们的入口文件,app.js,

var angular = require('angular');// 引入angular

var urlRouterProvider = require('angular-ui-router');

var uiLoad = require('angular-ui-load');

var $jq = require('jquery');

var animate = require('angular-animate');

var ngModule = angular.module('app',['ui.router','ui.load','ngAnimate']); // 创建app

require('./factory.js')(ngModule,$jq);// 公共方法封装

require('./route.js')(ngModule);// 引入路由文件

require('./directives.js')(ngModule,$jq);// 组件

require('./controller.js')(ngModule);// 控制器

require('./css/style.css');// 引入样式文件

这里主要把js依赖文件引入,然后把angular的路由和逻辑处理的js引入,方便前端模块化编程,注视比较清晰就不多说了。单独的js模块直接按照原来的写就ok了 区别就是在最外层写一个module.exports = function(ngModule){}

项目代码:https://github.com/wangbaogui123/angular-webpack2.git

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js下用gb2312编码解码实现方法
Dec 31 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
Sep 05 Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 Javascript
js中confirm实现执行操作前弹出确认框的方法
Nov 01 Javascript
DOM基础教程之使用DOM控制表单
Jan 20 Javascript
js实现滚动条滚动到页面底部继续加载
Dec 19 Javascript
JS实现的自定义水平滚动字体插件完整实例
Jun 17 Javascript
node.js将MongoDB数据同步到MySQL的步骤
Dec 10 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
微信小程序canvas绘制圆角base64图片的实现
Aug 18 Javascript
vue实现div单选多选功能
Jul 16 Javascript
jquery实现图片轮播器
May 23 #jQuery
详解用node编写自己的cli工具
May 23 #Javascript
JavaScript 巧学巧用
May 23 #Javascript
JS获取短信验证码倒计时的实现代码
May 22 #Javascript
原生JS实现不断变化的标签
May 22 #Javascript
jQuery实现简单的滑动导航代码(移动端)
May 22 #jQuery
vue2.0 与 bootstrap datetimepicker的结合使用实例
May 22 #Javascript
You might like
解析php中array_merge与array+array的区别
2013/06/21 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
跟老齐学Python之重回函数
2014/10/10 Python
详解Django中的权限和组以及消息
2015/07/23 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python中类与对象之间的关系详解
2020/12/16 Python
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
优秀员工表扬信
2014/01/17 职场文书
幼儿园教育教学反思
2014/01/31 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
python神经网络Xception模型
2022/05/06 Python