AngularJs前端环境搭建

最近刚开始做angular项目,开始搭建开发环境,刚开始的时候用express搭了本地服务,然后开发angular的静态项目,项目用gulp做自动化管理,做了一段时间感觉不是很方便,于是开始考虑用webpack来做。网上找了一下,相关的文章不少,最后参考来一个老外的例子做,实践下来感觉还不错,下面说一下详细的项目架构。

结构和配置

启动文件是app.js,各子页面放到对应的目录中,utils是可提取的工具类组件,angular的项目结构应该都差不多。

webpack配置主要是几个loader

loaders: [{
      test: /\.js$/,
      loader: 'babel',
      exclude: /node_modules/
    }, {
      test: /\.css$/,
      loader: isTest ? 'null' : ExtractTextPlugin.extract('style', 'css?sourceMap!postcss')
    }, {
      test: /\.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/,
      loader: 'file'
    }, {
      test: /\.html$/,
      loader: 'raw'
    }]

如果使用es6的话babel还是要装的,.babelrc的配置则比较简单,配置好后你就可以尽情的享受es6带来的快感了。

{
  "presets":['es2015']
}

npm可以先配置两个简单的命令start和build

"scripts": {
    "build": "rimraf dist && webpack --bail --progress --profile",
    "server": "webpack-dev-server --history-api-fallback --inline --progress",
    "start": "npm run server"
  },

server使用的是webpack-dev-server,这个只要npm安装一下就ok了。具体可以参考项目:https://github.com/Foxandxss/angular-webpack-workflow

构建应用

一般来说都会有一个app.js作为应用的入口,配置应用的依赖和启动信息等。

import 'bootstrap/dist/css/bootstrap.min.css';

import angular from 'angular';
import uiRouter from 'angular-ui-router';
import mainCtrl from './mainCtrl';

let config = function($stateProvider,$urlRouterProvider,$locationProvider){
  $locationProvider.html5Mode(true);
  $stateProvider.state('default',{
    url:'/',
    template:require('./app.html')
  });
  $urlRouterProvider.otherwise("/");
};
config.$inject = ['$stateProvider','$urlRouterProvider','$locationProvider'];
angular.module('app',[uiRouter])
      .config(config)
      .controller('mainCtrl',mainCtrl);

例如上面的例子,注册app模块,配置路径,添加controller。其中inject是angularjs的依赖注入,还是相当的好用。这段代码表达的意思就是应用访问根路径的时候加载app.html的内容,并且载入mainCtrl这个controller。

app.html的内容

<div ng-controller="mainCtrl as mc">
  <h1>This is a test angular project.</h1>
  <div>{{mc.name}}</div>
  <p><a ng-href="/dashboard">to dashboard</a></p>
</div>

mainCtrl.js的内容

export default class mainCtrl{
  constructor(){
    this.name = 'This is homepage!';
  }
}

需要注意的是“mainCtrl as mc”这段,它可以让我们不用再把controller中的变量和方法在放到$scope上,controller再也不用注入$scope了。如果不明白请参考这里

app.html中有一个链接跳到我们的另一个页面dashboard,但是上面的代码并没有这个功能,我们需要再来编写一个dashboard的功能模块。

我们在app目录下面再添加一个dashboard目录,里面放我们子页面dashboard的文件,这里有三个文件:dashboard.html , dashboard.js , dashboardCtrl.js。

dashboard.js的内容

'use strict';
import angular from 'angular';
import uiRouter from 'angular-ui-router';
import dashboardCtrl from './dashboardCtrl';
import tpl from './dashboard.html'

var config = function($stateProvider){
  $stateProvider
  .state('dashboard',{
      url:'/dashboard',
      template:tpl,
      controller:'dashboardCtrl'
  });
}
config.$inject = ['$stateProvider'];

export default angular.module('dbmod',[uiRouter])
                      .config(config)
                      .controller('dashboardCtrl',dashboardCtrl)
                      .name;

dashboardCtrl.js的内容

class dashboardCtrl{
  constructor($scope){
    console.log($scope);
    $scope.dashboardName = 'This is dashboard!';
  }
}
dashboardCtrl.$inject = ['$scope'];
export default dashboardCtrl;

dashboard.html的内容

<div ng-controller="dashboardCtrl">
<h1>{{dashboardName}}</h1>
</div>

dashboardCtrl这里采用注入的方式使用$scope,跟上面的this效果是一样的。

ok现在工作基本完成,我们运行npm start跑一下

然后就可以在浏览器中看到了

点击“to dashboard”就可以看到

到这里我们的演示几本都完成了,细节地方不明白的可以参考Using Angular 1.x With ES6 and Webpack

by 祁幽小贵

时间: 2024-10-25 18:04:05

AngularJs前端环境搭建的相关文章

AngularJs入门教程之环境搭建+创建应用示例_AngularJS

本文简单讲述了AngularJs环境搭建+创建应用的方法.分享给大家供大家参考,具体如下: 概述 AngularJS是Google工程师研发的一款JS框架,官方文档中对它的描述是,它是完全使用JavaScript编写的客户端技术,同其他历史悠久的Web技术(HTML,CSS等)配合使用,使得Web开发变得更简单.更高效.它是笔者用过的比较有特色的一款框架,以HTML作为模版语言并扩展HTML属性,使得应用组件开发保持高度的清晰和一致.本系列文章將以实际的案例简单的介绍AngularJs的特性和用

spring+springMVC+mybatis的框架项目基础环境搭建

上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合. 虽然在之前activiti相关的学习中所用到的框架也是这个,但是当时重点在于实现activiti的功能,因此在环境搭建上也只是以能用为前提,与真实项目中所用的还是差了不少. 因此为了给接下来的项目做准备,今天便抽空练习了一下这个框架组合的搭建.虽然之前的框架都不是我来搭,接下来这个可能也不是让我搭,但记录下来说不定以后能用上,也或者对其他人有用. 那么进

J2ee Servlet开发环境搭建全过程

环境:Windows sp3.Myeclipse 6.5 1.新建一个Web项目(New Web Porject),然后点"完成". 开发环境搭建全过程-j2ee开发环境搭建"> 2.在Cuzz项目下右击src>>new>>Servlet,创建一个Servlet,包名一定要写上."Name:"值以"Servlet"结尾,因为我们写一个登陆页面,为了更加安全选择doPost方法就行了,然后下一步. 3.下一步

windows下JAVA敏捷开发环境搭建步骤教程

  编程开发环境搭建还是挺重要的,第一步是先要搭建环境,有了环境才能开展工作.本文我们来看看windows下JAVA敏捷开发环境搭建步骤. 整个软件项目分为四个环境 开发本地环境.开发环境.测试环境.IDC环境.和传统C++开发不一样的模式是多了第一个开发本地环境.这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发.对于mac和linux下直接使用软件并且开发的中国开发者还是少之又少,这套架构就这个现状做出来的.如下是环境搭建架构图: 从环境来说: 一.开发本地环境.开发集成服

node.js环境搭建教程

  Node.js是一个JavaScript运行环境,但是实际上他是多谷歌V8引擎进行封装,node对一些特殊的用例进行了优化,提供了API,让V8更加好的在非浏览器情况下运行,下面小编就为大家介绍一下node.js环境搭建教程 Node.js是一个事件驱动I/O服务端JavaScript环境.由于其拥有异步非阻塞.环境搭建简单.实践应用快等特性,使得其在新一代编程开发中更为流行.同时,由于Node.js 基于JavaScript语法,因此在学习Node.js时也可以了解和学习JavaScrip

Redux教程1:环境搭建,初写Redux

[序] 如果将React比喻成士兵的话,你的程序还需要一位将军,去管理士兵(的状态),而Redux恰好是一位好将军,简单高效: 相比起React的学习曲线,Redux的稍微平坦一些:本系列教程,将以"红绿灯"为示例贯穿整个demo,希望能让用户快速理解&学习Redux: 强烈推荐 Redux 中文文档,本redux教程所有的材料和思路都来源于此: 这个系列拆分成3篇文章,最后获得的效果图为: (这个是gif图,如果没动画请点击在新窗口打开) 红绿灯初始状态是 绿灯5s,继而循环

SSH框架总结(框架分析+环境搭建+实例源码下载)(转)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序.   集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层).   Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管

交叉编译和交叉调试环境搭建及使用

交叉编译和交叉调试环境搭建及使用 1. 交叉编译器 1.1 交叉编译器介绍 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译.这个编译过程就叫交叉编译.简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器(cross compiler). 1.2 搭建交叉编译环境  1.2.1 实验环境 交叉编译工具:arm-linux- 4.2.2 编译平台:ubuntu10.10 开发板类型:UT-S3C6410 1.2.2 搭

Java入门教程系列 – 开发环境搭建

原文http://go-learning.com/2012/05/23/java-gettingstart-1/ Java入门教程系列 – 开发环境搭建 Posted on 2012 年 5 月 23 日 by Johnny 在使用任何的计算机语言进行编程之前,你都需要搭建一个开发环境.简单的说,这个过程就是要安装一些开发 用的软件和进行相关的一些配置.每种计算机语言所需要的软件是不一样的,对于Java语言来说,你最少需要安装一个JDK (这是一个专有名称,要死记),JDK的全称叫 – Java