标签:seajs   nodejs   npm   spm   js

1. 概述

本文章来源于本人在项目的实际应用中写下的记录。因初期在安装和使用Seajs和SPM的时候,有点不知所措的经历。为此,我们编写本文档,通过图文并茂的方式来为大家讲解seajs和spm编译环境的搭建和基本使用方法。

2. 认识SEAJS

seajs是一种前端模块化加载框架,与jQuery等javascript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载。SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑。SeaJS可以与jQuery这类框架完美集成。使用SeaJS可以提高JavaScript代码的可读性和清晰度,解决目前JavaScript编程中普遍存在的依赖关系混乱和代码纠缠等问题,方便代码的编写和维护。

3. 下载Seajs和spm编译环境

1.首先需要本机安装Nodejs,nodejs也是目前比较流行的技术之一,至于nodejs,有兴趣的可以在www.nodejs.org 官网查看具体API。一般情况下安装好之后,是会默认安装好npm工具的,可以进入本机cmd键入npm -v 查看,正常是话会提示下列版本信息。

2.设置全局路径(可选,如不执行此步骤,默认安装会安装在appdata):我的理解就是这个路径是你通过npm安装之后所以的东西存放的路径。建议安装好之后设置一下npm的全局变量,因为默认是在appdata里面的,可以将全局变量设置成自己想要的位置,具体方法:

首先在本地你安装路径下新建两个文件夹(你想要放下载文件的地方):

在cmd命令:npm config set prefix "D:\Program Files\nodejs\node_global"

以及npm config set cache "D:\Program Files\nodejs\node_cache"

基本上全局路径就配置好了,以后安装的插件和工具都会放在这里面,我试了试 npm install jquery -g(-g 这个参数就是安装在全局);

命令执行完成之后,就会在刚刚global/node_modules目录里面自动生成jquery的文件夹和js文件。

3.安装需要的插件:

首先,我们需要使用seajs的东西,所以下载seajs:

如果在目录下有了,说明正常:

然后我们需要安装spm编译打包工具,这步我们推荐 npm install spm@2.x -g ,如果直接npm install spm默认使用最高版本3.X,在这个版本下我发现编译工具不能编译我写的JS(查了原因原来是3.X和2.X在写法上有一些区别,所以编译不成功),因之前接触的都是2.X版本的写法所以就绕道至2.x版本了。

到这步的时候,我们的spm编译工具就能用了。

4. Seajs怎么用

主要是代码外层有一些规则,具体写法和目前js书写方法一致,我就根据我们项目应用上来做一个demo,来一步一步说说怎么用的吧。

? 框架搭建

1.项目框架还是采用前端一般的文件夹路径,如下图:

2.把我们需要使用的seajs文件引入,,从第三步我们下载下来的module中拷贝过来就行的,如下图:

3.Seajs文件路径格式(分为模块和源文件即[sea-modules和static]),模块不需要我们写,但如果引用外部的JS则需要手动加入,具体结构件上图,在js文件夹下建立static文件夹,用来装源文件js,也就是我们写的js文件,我们也先建立demo文件夹用来区分不同的JS模块,在demo目录下需要有src文件夹,即源文件,和package.json,如下图:

4.编写我们需要的代码文件:

Src里面放我们写的js文件,我这里写的是demo.js,代码如下:

/**

*demo

*/

define(function(require,exports,module){

/**

* 构造函数

*/

function PolicyIntlAdd(paramA,paramB,paramC){

this.functionA();

}

/**

* 定义需要用到的方法

*/

/**

*demo

*/

define(function(require,exports,module){

/**

* 构造函数

*/

function Demo(paramA,paramB,paramC){

this.functionA();

}

/**

* 定义需要用到的方法

*/

Demo.prototype={

//初始化方法

functionA:function(){

alert(‘this is a demo!‘);

},

//提交方法

functionB:function(){

//to do songmeing...

}

};

module.exports=Demo;

});

我在里面写了一句alert方法打印出一些信息,packa.json里面内容:

{

"family": "demo",

"name": "demo",

"version": "1.0.0",

"description": "demo",

"author": "manager@bluesnowsoft.com",

"spm":

{

"alias":{

},

"output": ["demo.js"]

}

}

不要问我为什么这样写,我们将在第二弹给你想要的解释.

下面就是把我们写的js编译一次了,首先cmd进入src的目录运行spm build,如下图:

编译完成后,目录下会多一个dist文件夹:

在来我们就是要install我们编译的js文件了。

还是在cmd这个路径下,运行 spm install . -d ../../sea-modules/seajs,结果:

现在我们去js/sea-modules/seajs里面看看:

就多了demo这个模块了,再看看里面的东西:

现在我们就来写根目录下的demo.html,我的代码这样写的:

<html>

<head>

<title>demo</title>

</head>

<body>

</body>

<script type="text/javascript"  src="js/sea-modules/seajs/sea.js"></script>

<script type="text/javascript"  src="js/sea-modules/seajs/seajs-style.js"></script>

<script>

seajs.use([‘demo/demo/1.0.0/demo‘],function(Demo){

var demo = new Demo(null,null,null);

});

</script>

</html>

打开demo.html,运行结果为:

5. 结语

在本step by step中只简单介绍了SeaJs和他的初步应用,可能看似有些复杂,但是这种模块化的思想,对我们大型项目的前端是很有帮助的,我们将在下一季更加深入的介绍SeaJs,敬请期待。

我的前端之旅--SeaJs基础和spm编译工具运用[图文]

标签:seajs   nodejs   npm   spm   js

原文:http://blog.csdn.net/blue_rem/article/details/41891573

更多开发分享请访问:http://www.javarecord.com/

我的前端之旅--SeaJs基础和spm编译工具运用[图文]的更多相关文章

  1. Webpack的作用(一个基础的打包编译工具在做什么?)

    结论: 转换ES6语法成ES5 处理模块加载依赖 生成一个可以在浏览器加载执行的 js 文件 第一个问题,转换语法,其实我们可以通过babel来做.核心步骤也就是: 通过babylon生成AST 通过 ...

  2. 前端开发:css基础知识之盒模型以及浮动布局。

    前端开发:css基础知识之盒模型以及浮动布局 前言 楼主的蛮多朋友最近都在学习html5,他们都会问到同一个问题 浮动是什么东西?  为什么这个浮动没有效果?  这个问题楼主已经回答了n遍.今天则是把 ...

  3. 前端利器:SASS基础与Compass入门

    SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让css看起来更像是一门语言,这种特性也被称为“cs ...

  4. [转]前端利器:SASS基础与Compass入门

    [转]前端利器:SASS基础与Compass入门 SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让 ...

  5. Koala – 开源的前端预处理器语言图形编译工具

    koala 是一个前端预处理器语言图形编译工具,支持 Less.Sass.Compass.CoffeeScript,帮助 Web 开发者更高效地使用它们进行开发.跨平台运行,完美兼容 Windows. ...

  6. c语言学习基础:[1]开发工具介绍

    标签:c语言 1 2 3 4 分步阅读 学习编程语言的童鞋们一开始接触到的最多的估计就是C语言了,其次才是什么java.c++等,可以说学习c语言是我们走向编程世界的一座桥梁,学好它,对于我们学习和研 ...

  7. 老李分享: 并行计算基础&编程模型与工具 1

    老李分享: 并行计算基础&编程模型与工具   在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如 ...

  8. 关于Linux开源项目基础组件make编译流程

     关于Linux开源项目基础组件make编译流程 非常多Linux开源项目都会用到编译出可运行文件的make.这个是有一套流程的. 首先,GNU构建系统:https://en.wikipedia. ...

  9. python渗透测试入门——基础的网络编程工具

    <Python黑帽子--黑客与渗透测试编程之道学习>这本书是我在学习安全的过程中发现的在我看来十分优秀的一本书,业内也拥有很高的评价,所以在这里将自己的学习内容分享出来. 1.基础的网络编 ...

随机推荐

  1. visualvm

    http://visualvm.java.net/features.html http://visualvm.java.net/zh_CN/gettingstarted.html

  2. 基于AFNetworking3.0网络封装

    概述 对于开发人员来说,学习网络层知识是必备的,任何一款App的开发,都需要到网络请求接口.很多朋友都还在使用原生的NSURLConnection一行一行地写,代码到处是,这样维护起来更困难了. 对于 ...

  3. CXF整合Spring开发WebService

    刚开始学webservice时就听说了cxf,一直没有尝试过,这两天试了一下,还不错,总结如下: 要使用cxf当然是要先去apache下载cxf,下载完成之后,先要配置环境变量,有以下三步: 1.打开 ...

  4. Oracle 根据业务创建新的用户

    新的需求,创建一个用户,可以查询基表的数据,但是不能修改,同时自己也可以创建对象 1.创建用户第一种方式 详细常见,前提 表空间和临时表空间必须存在 格式: create user 用户名 ident ...

  5. C#教程之打印和打印预览

    最近研究一了一下关于PDF打印和打印预览的功能,在此小小的总结记录一下学习过程. 实现打印和打印预览的方法,一般要实现如下的菜单项:打印.打印预览.页面设置. PrintDocument类 Print ...

  6. 8个开发必备的PHP功能(转)

    又是好几天没写博客,今天看到了个不错的文章,就转载到自己的博客,好以后查询方便. 1.传递任意数量的函数参数 我们在.NET或者JAVA编程中,一般函数参数个数都是固定的,但是PHP允许你使用任意个数 ...

  7. jQuery 取值、赋值的基本方法【转藏】

    /*获得TEXT.AREATEXT的值*/ var textval = $("#text_id").attr("value"); //或者 var textva ...

  8. H TML5 之 (7) 俄罗斯方块效果

    下载是模拟的俄罗斯方法的效果,在下落的情况下,能 <!DOCTYPE HTML> <html> <head> <title>Shot</title ...

  9. C#中方法的参数修饰符

    做项目久了,有的时候真的需要静下心来认真的总结一下自己所用到的技术,而不是每天依葫芦画瓢,每天忙忙碌碌,到头来不知道自己忙了个啥,学了什么,自己到底掌握了多少知识.所以我想回顾一下C#的基础知识,把重 ...

  10. (转)C#中的泛型

    来源:http://www.cnblogs.com/JimmyZhang/archive/2008/12/17/1356727.html .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持 ...