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 入门级学习笔记及源码
Jan 22 Javascript
JavaScript 小型打飞机游戏实现原理说明
Oct 28 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
js定时器的使用(实例讲解)
Jan 06 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
May 11 Javascript
javascript数字验证的实例代码(推荐)
Aug 20 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
three.js中文文档学习之通过模块导入
Nov 20 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
Oct 12 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
Jun 11 Javascript
Js实现粘贴上传图片的原理及示例
Dec 09 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初学者们头痛的十四个问题
2007/01/15 PHP
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
google地图的路线实现代码
2009/08/20 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
vue实现购物车案例
2020/05/30 Javascript
Python做文本按行去重的实现方法
2016/10/19 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
机电一体化专业推荐信
2013/12/03 职场文书
教育孩子心得体会
2014/01/01 职场文书
施工资料员岗位职责
2014/01/06 职场文书
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
新农村建设汇报材料
2014/08/15 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
2014年个人总结范文
2015/03/09 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫