js模块加载seajs框架的教程

有些时候,我们不得不写一些前段的东西,但是总感觉前段加载的太乱,管理起来不方便,加载也是问题,其实以前不会写页面,但是偶然机会开始一直写页面+写程序了。我的使用搭配方案是 seajs + angularjs + bootstrap + jquery + grunt + less 。

为什么使用的是 Grunt 其实很简单,因为我也需要编译 less 文件,实施监控文件的改动和对 html 、 js 、css 进行压缩。当然不仅仅是这些,功能很强大,我就不一一介绍了。只是个人喜好而已。感觉这东西跟 golang 中的 bee Application 差不多。你也可以选择你所喜欢的。

一般的 CSS 我使用的是 less 因为 bootstrap 中也是提供了完整的 less 文件,开发和定制前端,最重要的是维护起来真的很方便,不得不这么说。
0X01 seajs 加载原生的 JQuery

很简单,只需要如下就可以

 代码如下 复制代码

define(function(){
    //这里放JQuery源代码
    return $.noConflict();
});

其实就是将,下载的 JQuery 的源代码放到注释的部分加载就可以了。

0X02 angular js 模块如何加载

angular js 如何加载生效呢? 不能用了咋办? 其实也一样很简单,如下

 代码如下 复制代码

define(function(require,exports,module){
    // angular js 源代码
    module.exports = angular;
});

只需要在注释的地方假如 angular js 源代码就可以了。

如果使用 angular js的其他模块,譬如route ,只需要将源代码包在 define(function(){ }) 中就可以,如下

 代码如下 复制代码

define(function(){
    //angular-route 源代码
})

然后,你就可以写一段代码测试一下了,如下

 代码如下 复制代码

define(function(require,exports,module){
    var angular = require('angular');
    require('angular-route');
    var app  = angular.module('myapp',['ngRoute']).config(function($routeProvider){
            $routeProvider.when('/',{
                controller : function($scope){
                    $scope.message = '这里是首页';
                },
                template  : "{{message}}"
            }).when('/list/:id',{
                controller : function($scope,$routeParams){
                    $scope.message = $routeParams.id;
                },
                template  : "您的用户id是{{message}}"
            }).when('/product',{
                controller : function($scope){
                    $scope.message = "这里是产品页";
                },
                template  : "{{message}}"
            }).otherwise({
                redirectTo : '/'
            });
        });
    app.controller('test',['$scope','$location',function($scope,$location){
        $scope.message = 'widuu.com';
    }]);
});

0X03 grunt 压缩时 angularjs 失效问题

这个也很简单,其实就是将特定的命名再压缩的时候不编译。在你的 uglify -> 项目 -> mangle 添加except

 代码如下 复制代码
mangle: {
    except: ['require', 'exports','module','$','jquery','angular','$routeProvider','$scope','$routeParams']
},

就简单说到这吧!!

时间: 2024-09-12 13:00:41

js模块加载seajs框架的教程的相关文章

概述如何实现一个简单的浏览器端js模块加载器_javascript技巧

在es6之前,js不像其他语言自带成熟的模块化功能,页面只能靠插入一个个script标签来引入自己的或第三方的脚本,并且容易带来命名冲突的问题.js社区做了很多努力,在当时的运行环境中,实现"模块"的效果. 通用的js模块化标准有CommonJS与AMD,前者运用于node环境,后者在浏览器环境中由Require.js等实现.此外还有国内的开源项目Sea.js,遵循CMD规范.(目前随着es6的普及已经停止维护,不论是AMD还是CMD,都将是一段历史了) 浏览器端js加载器 实现一个简

Node.js 模块加载机制 Require()

require() 不要把这里的Require()和RequireJS混为一谈.不过有意思的是,Typescript的模块定义,甚至同时支持这两种模块机制. 导入和使用外部模块,只是简单的一句require(),看看angular/material/docs下的编译文件gulpfile.js的代码片段.对模块导入和使用有个直观的感觉. var gulp = require('gulp'); var concat = require('gulp-concat'); var fs = require

Node.js模块加载详解_node.js

JavaScript是世界上使用频率最高的编程语言之一,它是Web世界的通用语言,被所有浏览器所使用.JavaScript的诞生要追溯到Netscape那个时代,它的核心内容被仓促的开发出来,用以对抗Microsoft,参与当时白热化的浏览器大战.由于过早的发布,无可避免的造成了它的一些不太好的特性. 尽管它的开发时间很短,但是JavaScript依然具备了很多强大的特性,不过,每个脚本共享一个全局命名空间这个特性除外. 一旦Web页面加载了JavaScript代码,它就会被注入到全局命名空间,

加快页面的载入速度:异步模块加载器In.js

文章简介:用In.js颗粒化管理.加载你的Javascript模块. 近一年来,国内外都十分热衷于异步加载的研究,为了加快页面的载入速度,无阻塞加载Javascript的方法和框架成为了前端开发的焦点和亮点之一. 国外的像基于jQuery的RequireJs,YUI Loader,LabJs,RunJs,国内也有淘宝的SeaJs,豆瓣的DoJs等,这些都是一些十分优秀的模块加载器.但是本文将会向大家介绍一个新的开源的轻量级"多线程"异步模块加载器In.js,In的开发借鉴了Do的一些思

seaJs的模块定义和模块加载浅析_Seajs

SeaJS 是由玉伯开发的一个遵循 CommonJS 规范的模块加载框架,可用来轻松愉悦地加载任意 JavaScript 模块和css模块样式.SeaJS非常小巧,小巧在于压缩和gzip后体积只有4K,而且接口和方法也非常少,SeaJS 就两个核心:模块定义和 模块的加载及依赖关系.SeaJS非常强大,SeaJS可以加载任意 JavaScript 模块和css模块样式,SeaJS会保证你在使用一个模块时,已经将所依赖的其他模块载入到脚本运行环境中.玉伯的说法,SeaJS可以让你享受写代码的乐趣,

javascript框架设计读书笔记之模块加载系统_javascript技巧

模块加载,其实就是把js分成很多个模块,便于开发和维护.因此加载很多js模块的时候,需要动态的加载,以便提高用户体验. 在介绍模块加载库之前,先介绍一个方法. 动态加载js方法: 复制代码 代码如下: function loadJs(url , callback){ var node = document.createElement("script");       node[window.addEventListener ? "onload":"onre

in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案_javascript技巧

国外的像基于jQuery的RequireJs,YUI Loader,LabJs,RunJs,国内也有淘宝的SeaJs,豆瓣的DoJs等,这些都是一些十分优秀的模块加载器.但是本文将会向大家介绍一个新的开源的轻量级"多线程"异步模块加载器In.js,In的开发借鉴了Do的一些思路和使用习惯,在此期间感谢@kejun同我的耐心交流,In.js压缩后只有4.77k,不仅小巧而且十分好用. 优点: 按需加载 无阻塞加载 依赖关系管理 颗粒化模块管理 如何使用? A.引入In.js 复制代码 代

《JavaScript框架设计》——第 2 章  模块加载系统 2.1AMD规范

第 2 章 模块加载系统 任何语言一到大规模应用阶段,必然要经历拆分模块的过程,以有利于维护与团队协作.与Java走得最近的dojo率先引入了加载器,早期的加载器都是同步的,使用document.write与同步Ajax请求实现.后来dojo开始以JSONP的方法设计它的每个模块的结构,以script节点为主体加载它的模块,这个就是目前主流的加载器方式.不得不提的是,dojo的加载器与AMD规范的发明者都是James Burke,dojo加载器独立出来就是著名的require加载器. 2.1 A

extjs6.0-Extjs6 bootstrap.js为什么不能加载extjs框架

问题描述 Extjs6 bootstrap.js为什么不能加载extjs框架 <!DOCTYPE HTML> <html manifest=""> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="UTF-8"> <meta name="viewpor