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 相关文章推荐
解决FLASH需要点击激活的代码
Dec 20 Javascript
javascript下4个跨浏览器必备的函数
Mar 07 Javascript
基于jquery的网页SELECT下拉框美化代码
Oct 28 Javascript
js中apply方法的使用详细解析
Nov 04 Javascript
JS图片无缝、平滑滚动代码
Mar 11 Javascript
JavaScript中操作Mysql数据库实例
Apr 02 Javascript
png在IE6 下无法透明的解决方法汇总
May 21 Javascript
简单解析JavaScript中的__proto__属性
May 10 Javascript
Node.js Addons翻译(C/C++扩展)
Jun 12 Javascript
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
JavaScript实现JSON合并操作示例【递归深度合并】
Sep 07 Javascript
vue之延时刷新实例
Nov 14 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与阿里云短信接口接入操作案例分析
2020/05/27 PHP
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
js常用代码段整理
2011/11/30 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
jquery replace方法去空格
2017/05/08 jQuery
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
python 实现生成均匀分布的点
2019/12/05 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
python中np是做什么的
2020/07/21 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
安全施工标语
2014/06/07 职场文书
离婚民事起诉状
2015/08/03 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书