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 验证浏览器是否支持javascript的方法小结
May 17 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
Apr 27 Javascript
尝试在让script的type属性等于text/html
Jan 15 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
jQuery使用addClass()方法给元素添加多个class样式
Mar 26 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
Sep 01 Javascript
JavaScript 是什么意思
Sep 22 Javascript
原生js实现类似fullpage的单页/全屏滚动
Jan 22 Javascript
Three.js基础学习之场景对象
Sep 27 Javascript
一个基于react的图片裁剪组件示例
Apr 18 Javascript
javascript 构建模块化开发过程解析
Sep 11 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
php数据库连接
2006/10/09 PHP
php之字符串变相相减的代码
2007/03/19 PHP
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
Python版的文曲星猜数字游戏代码
2013/09/02 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
简单了解django文件下载方式
2020/02/10 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
会计毕业生自我鉴定
2013/11/04 职场文书
校长寄语大全
2014/04/09 职场文书
校庆口号
2014/06/20 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
2019年聘任书的写作格式及范文!
2019/07/03 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Docker部署Mysql8的实现步骤
2022/07/07 Servers