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 相关文章推荐
Google Suggest ;-) 基于js的动态下拉菜单
Oct 11 Javascript
js文字滚动停顿效果代码
Jun 28 Javascript
JavaScript 密码强度判断代码
Sep 05 Javascript
jquery EasyUI的formatter格式化函数代码
Jan 12 Javascript
jquery索引在使用中的一些困惑
Oct 24 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
Nov 20 Javascript
javascript实现密码强度显示
Mar 18 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
Mar 30 Javascript
微信小程序 picker-view 组件详解及简单实例
Jan 10 Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 Javascript
浅谈js中同名函数和同名变量的执行问题
Feb 12 Javascript
Vue中util的工具函数实例详解
Jul 08 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遍历二维数组的代码
2011/04/22 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
laravel学习教程之关联模型
2016/07/30 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
php中__toString()方法用法示例
2016/12/07 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
jQuery基础框架浅入剖析
2012/12/27 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
用Python编写web API的教程
2015/04/30 Python
python发送邮件实例分享
2017/07/28 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
经典大学生求职信范文
2014/01/06 职场文书
公休请假条
2014/04/11 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
单位工作证明范本
2015/06/15 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
js不常见操作运算符总结
2021/11/20 Javascript