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 相关文章推荐
客户端限制只能上传jpg格式图片的js代码
Dec 09 Javascript
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
jquery使用ajax实现微信自动回复插件
Apr 28 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
微信小程序 页面跳转和数据传递实例详解
Jan 19 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
Mar 20 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
Angular ng-animate和ng-cookies用法详解
Apr 18 Javascript
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 Javascript
微信小程序绑定手机号获取验证码功能
Oct 22 Javascript
OpenLayers3实现测量功能
Sep 25 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实现分页的一个示例
2006/10/09 PHP
php导出生成word的方法
2015/12/25 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
PHP strripos函数用法总结
2019/02/11 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
jQuery阻止移动端遮罩层后页面滚动
2017/03/15 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
浅谈Python爬虫基本套路
2019/03/25 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
什么是Python中的顺序表
2020/06/02 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
ET Mall东森购物网:东森严选
2017/03/06 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
质量安全标语
2014/06/07 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python
Python编程super应用场景及示例解析
2021/10/05 Python