gulp + es6 + babel+ angular 搭建环境并实现简单的路由

1.ECMAscript 6的语法糖面临的唯一问题就是浏览器兼容的问题,使得很多程序员望而怯步。

2.babel的作用就是将es6的语法编译成es5被浏览器所识别。这样就可以任性的使用es6了。

3.gulp的使用:http://www.cnblogs.com/changyaoself/p/7856223.html。最好去看大佬的更多详情与解释。

4.上代码:

// gulpfile.js
var gulp=require("gulp");
var babel = require("gulp-babel");
var es2015 = require("babel-preset-es2015");    //es6编译es5
var webpack = require("gulp-webpack");        //   针对es6 的import 和export 
var watch = require('gulp-watch');               //    实时的监听js文件,以及时的更新打包
var uglify = require('gulp-uglify');             //  文件压缩
gulp.task("js",function(){
  gulp.src("es6/*.js")
    .pipe(babel({presets:[es2015]}))
    .pipe(gulp.dest("noUse"))         //  此处noUse为垃圾文件的放置,主要是先import编译成es5会变成require,被报require is not defined ,所以通过webpack再打包才能正确执行。
    .pipe(webpack({                   // 没有import 和 export 模块化的功能就不需要这一步。
      output:{
        filename:"all.js"    // 打包后的合并文件
      },
      stats:{
        colors:true
      }
    }))
    .pipe(uglify())
    .pipe(gulp.dest("es5"));
});
gulp.task('default',function(){       
	gulp.run(['js']);                             //先执行task为js的任务。
	gulp.watch('es6/*.js', ['js']);       // 监听es6 目录下的js文件,发生变化,再次执行任务。
});

  这里不需要创建.babelrc 格式的文件。

5.看目录:gulp执行后:

          

6.与angular 配合使用  页面html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body ng-app="app" ng-controller="controller">
		<div >
			<p>{{text}}</p>
		</div>
		<ul>
			<li><a ui-sref='index'>页面1</a></li>
			<li><a ui-sref='index1'>页面2</a></li>
			<li><a ui-sref='index2'>页面3</a></li>
		</ul>
		<ui-view></ui-view>
	</body>
	<script src="es5/all.js" type="text/javascript" charset="utf-8"></script>
</html>

  7.更改import.js 文件:

import name from "./export";
import $ from "./../jquery.min.js";   //es6文件导入的方式。./是必须的,替代绝对路径。
import angualr from "./../angular.js";
import route from "./../angular-ui-router.js";
console.log($);
alert(name);
var app = angular.module('app',['ui.router']);
app.config(["$stateProvider","$urlRouterProvider",function($stateProvider,$urlRouterProvider){   //这里angular注入必须是严格的注入模式,否则会注入失败。
	 $urlRouterProvider.when("","/index");
	 $stateProvider.state("index",{
            url:'/index',
            templateUrl:'index.html',
            resolve:{
                loadOCjs:function(){}
            }
        }).state("index1",{
            url:'/index1',
            templateUrl:'index2.html',
            resolve:{
                loadOCjs:function(){}
            }
        }).state("index2",{
            url:'/index2',
            templateUrl:'index3.html',
            resolve:{
                loadOCjs:function(){}
            }
        });
}]);
app.controller('controller',['$scope',function($scope){   // 这里可以任性应用es6的语法。
	$scope.text = name;
}]);        
   

  8. export.js 文件:

export default 'yao';

  9.发现一个不完美的地方:这样严格的注入模式会不会耽误了class 的强大功能。提供一个思路去尝试:controller as 替代 的注入。

 

转载于:https://www.cnblogs.com/changyaoself/p/7873991.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Express和MongoDB是一对非常强大的组合,可以用来构建管理后台。Express是一种基于Node.js的Web框架,提供了许多强大的功能,如路由、中间件、模板引擎等。而MongoDB则是一种流行的NoSQL数据库,可以轻松地存储大量数据,并且具有高可用性和可扩展性。 要实现一个管理后台,首先需要用Express来搭建应用程序。可以使用npm包管理器来安装所需的依赖,并使用模板引擎来渲染页面。同时,也可以使用Express提供的中间件来处理身份验证、文件上传、错误处理等问题。 在管理后台中,数据是至关重要的。这就是MongoDB的用武之地了。可以使用官方的MongoDB Node.js驱动程序或第三方ORM,如Mongoose等来连接数据库并执行CRUD操作。通过使用MongoDB,可以轻松地管理用户、文章、评论、订单等数据,并将其存储在一个集合中。 除了使用Express和MongoDB以外,管理后台还可以通过使用其他有用的工具和技术来增强。例如: - 使用Bootstrap或其他CSS框架来创建漂亮的用户界面。 - 使用WebpackGulp等工具来优化前端资源。 - 使用Socket.IO来实时通信。 - 使用Passport.js或其他身份验证库来实现用户认证。 - 使用JWT或其他令牌库来实现安全的API访问。 总的来说,使用Express和MongoDB可以轻松地创建一个功能强大的管理后台,它不仅可以管理数据,还可以提供良好的用户界面和安全的认证和授权。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值