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 相关文章推荐
JavaScript下通过的XMLHttpRequest发送请求的代码
Jun 28 Javascript
JavaScript随机生成信用卡卡号的方法
Apr 07 Javascript
js验证真实姓名与身份证号是否匹配
Oct 13 Javascript
深入理解JS addLoadEvent函数
May 20 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
React组件之间的通信的实例代码
Jun 27 Javascript
ionic 自定义弹框效果
Jun 27 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
JS函数内部属性之arguments和this实例解析
Oct 07 Javascript
js 将线性数据转为树形的示例代码
May 28 Javascript
Vue3 中的数据侦测的实现
Oct 09 Javascript
Vue中用JSON实现刷新界面不影响倒计时
Oct 26 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
xajax写的留言本
2006/11/25 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
python找出完数的方法
2018/11/12 Python
python用post访问restful服务接口的方法
2018/12/07 Python
对python 调用类属性的方法详解
2019/07/02 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
python3使用GUI统计代码量
2019/09/18 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
Ref与out有什么不同
2012/11/24 面试题
公司董事长职责
2013/12/12 职场文书
车间主任岗位职责
2014/03/16 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
审美与表现自我评价
2015/03/09 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
详解CSS3浏览器兼容
2022/12/24 HTML / CSS