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 相关文章推荐
Jquery增加鼠标中间功能mousewheel的实例代码
Sep 05 Javascript
jquery checkbox实现单选小例
Nov 27 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
JavaScript中字符串(string)转json的2种方法
Jun 25 Javascript
jQuery点击其他地方时菜单消失的实现方法
Apr 22 Javascript
浅谈Javascript数据属性与访问器属性
Jul 26 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Dec 15 Javascript
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
微信小程序缓存过期时间的使用详情
May 12 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 Javascript
jquery插件实现代码雨特效
Apr 24 jQuery
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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
PHP date函数参数详解
2006/11/27 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
Javascript this指针
2009/07/30 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
python求解水仙花数的方法
2015/05/11 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
flask框架视图函数用法示例
2018/07/19 Python
Scrapy框架使用的基本知识
2018/10/21 Python
python 阶乘累加和的实例
2019/02/01 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
浅析Python迭代器的高级用法
2020/07/16 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
劳资员岗位职责
2013/11/11 职场文书
优秀家长事迹材料
2014/05/17 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
婚宴新娘致辞
2015/07/28 职场文书
2016年寒假家长评语
2015/10/10 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL