Omi原理-环境搭建

环境搭建

Omi框架使用 Webpack + ES6 的方式去开发;使用karma+jasmine来作为Omi的测试工具。

Karma介绍

Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行。但是集成到travis ci要把singleRun设置成true,让其只执行一遍。

Jasmine介绍

Jasmine 是一款 JavaScript BDD(行为驱动开发)测试框架,它不依赖于其他任何 JavaScript 组件。它有干净清晰的语法,让您可以很简单的写出测试代码。

开发依赖包

在package.json中,有如下配置:

  "devDependencies": {
    "babel-core": "^6.0.20",
    "babel-loader": "^6.0.1",
    "babel-preset-es2015": "^6.0.15",
    "node-libs-browser": "^0.5.3",
    "webpack": "^1.14.0",
    "jasmine-core": "^2.5.2",
    "karma": "^1.3.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-jasmine": "^1.1.0",
    "karma-webpack": "^1.8.1"
  }
  • ES6+相关依赖有babel-core、babel-loader和babel-preset-es2015

在webpack.config.js中配置js文件使用babel-loader编译。

loaders: [    {
        loader: ‘babel-loader‘,
        test: /\.js$/,
        query: {
            presets: ‘es2015‘,
        }
    }]
  • webpack相关依赖有node-libs-browser和webpack
  • 其余都是单元测试相关依赖
    注意,这里使用了karma-webpack。因为使用Omi框架支持ES6+和ES5,使用karma-webpack是为了在单元测试里面使用ES6+的import和Class等语法。

在karma.conf.js中配置webpack:

    webpack: webpackConfig,
    webpackMiddleware:{
      noInfo:false
    },
    plugins: [        ‘karma-webpack‘,
        ‘karma-jasmine‘,
        ‘karma-chrome-launcher‘
    ]

具体配置看test目录下的karma.conf.jswebpack.test.config.js便可。

注意,karma.conf.js需要设置

// if true, Karma captures browsers, runs the tests and exitssingleRun: true,

不然,travis ci脚本执行的时候不会中断导致执行超时异常。

npm 脚本

  "scripts": {
    "build": "webpack -w",
    "test": "karma start test/karma.conf.js",
    "hello": "webpack -w",
    "todo": "webpack -w"
  }

其中:

  • npm run build : 生成dist目录的omi.js文件
  • npm run test : 执行单元测试
  • npm run hello : 编译hello的demo
  • npm run todo : 编译todo的demo

在webpack.config.js中,会根据 process.env.npm_lifecycle_event去设置不同的入口文件。所以同样是执行webpack -w,执行结果可以不一样。

来看下build的相关webpack配置:

if(ENV === ‘build‘){
    config = {
        entry: {
            omi: ‘./src/index.js‘
        },
        output: {
            path: ‘dist/‘,
            library:‘Omi‘,
            libraryTarget: ‘umd‘,
            filename:  ‘[name].js‘
        },

这里把libraryTarget设置成了umd,webpack会帮助我们build出umd的Omi。

如果是打包demo(npm run hello 和 npm run todo)的话,会进入下面的条件判断:

else {
    config.entry = ‘./example/‘ + ENV + ‘/main.js‘;
    config.output.path = ‘./example/‘ + ENV + ‘/‘;}

会去example下对应的目录查找main.js作为webpack入口文件。

这里可以看到,我们不仅用webpack build出Omi框架,也使用webpack build所有demo。

时间: 2024-08-10 23:49:29

Omi原理-环境搭建的相关文章

springmvc工作原理和环境搭建

SpringMVC工作原理     上面的是springMVC的工作原理图: 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet. 2.DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL.Http方法.请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(H

sturst2的原理及环境搭建

一.struts原理一个请求在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某

HTML5 移动应用开发环境搭建及原理分析

开发环境搭建: 一.Android 开发平台搭建 安装java jdk:\\10.194.151.132\Mewfile\tmp\ADT 配置java jdk 1)  新建系统变量,JAVA_HOME,C:\Program Files\Java\jdk1.8.0_25 2)  新建系统变量,classpath,;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 3)  Path,%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 4)  测试

MFS分布式文件系统的原理及环境搭建

概述: NFS网络文件系统在性能与容量上无法胜任更高的要求,而本篇讲的MFS(MooseFS)可以提供容量PB级别的共享存储,无需昂贵的专业硬件服务器,自身就拥有冗余功能及动态扩容功能,能保证数据的安全性.` 分布式原理: 分布式文件系统(distributed file system)是指文件系统管理的物质存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.简单说就是把一些分布在局域网内各个计算机上的共享文件夹,集合到一个虚拟共享文件夹内,客户端访问只需要打开这个虚拟共享文件夹即

Ionic2环境搭建及文件目录介绍

[注]引用自:http://blog.csdn.net/jasonzds/article/details/53821184 1环境搭建 一年前研究混合框架,初步确定了四种方案给公司选择,ionic,hbuilder,wex5,react-native这四个框架各有优缺点,ionic和react-native是国外框架,相对好一点,文档更新很快,就不一一说了,大概的思路都是一样的,js逻辑实现,同时调用原生功能,h5,css3 UI实现,其实他们都有自己的ui框架,当时选择了国内的hbuiler,

使用WIF实现单点登录Part I——Windows Identity Foundation介绍及环境搭建

首先先说一下什么是WIF(Windows Identity Foundation).由于各种历史原因,身份验证和标识的管理一般都比较无规律可循.在软件里加入"身份验证"功能意味着要在你的代码里混进处理底层任务(如验证用户名和密码,与X509证书或类似的证书打交道等)的代码.这样一来就得对基础架构相当依赖,程序很难移植,除非大范围重写.要改变这种情况,使用基于声明的标识(claims-based identity)可以很好的解决这个问题.这个"基于声明的标识"是神马东

VSFTP通讯原理与搭建详解

VSFTP介绍 ftp是一种古老的明文传输协议,因为其明文传输的特性,也出现过很多重大的危机,进而逐渐演变为支持加密传输的VSFTP(very security FTP),而CentOS默认自带的FTP就为VSFTP.本文主要介绍下VFSTP的传输原理与搭建.为了避免干扰,实验前请关闭Selinux和IPtables. FTP传输机制 FTP通过21端口与Client端进行指令传输,通过20端口进行数据传输,根据工作模式的不同VSFTP分为主动模式和被动模式2种,大多是情况VSFTP是工作在被动

[小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识.刚刚开通了博客,就从最基础的开始吧,算是写给初学者的编程手记,也算是给对自动化完全不了解的小伙伴开个头.时间允许的话会坚持更新下去... ... 后续的文章计划会谈到一些企业级自动化测试平台的构建(但愿有时间完成哈~~). 关于自动化测试的框架,网上有很多相关的对比,在这里我我就不评论和对比了.本人

Spring MVC 环境搭建

作为java领域不可或缺的一员猛将,今天我开始正式接触它.与所有框架一样,我们第一步要做的就是搭建环境. 首先我们需要准备的材料: Eclipse tomcat(我用的是7.0) spring mvc jar包(我用的是3.2的) 有了这些工具,下面我们开始吧! 1.新建一个项目 Eclipse新建 Dynamic Web project 选择相应的服务器容器(我用的是Tomcat7.0),一路下一步到完成. 2.引入jar包 SpringMVC使用的jar包基本和Spring是相同的,我们可以