Mustang

替代野狗技术解决方案(野马)

4 weeks after

环境说明

全局需要安装gulpts-nodetypescript库。为了更好的理解改项目,改项目的结构将采用UML类图表示,如果不熟悉的开发可以跳转到UML学习进行学习。

各模块说明

特殊文件说明

types.ts:用于记录IOC标识符 inversify.config.ts:用于进行IOC注入 gulp.ts:利用ts-node支持基于TypeScript的Gulp脚手架

配置文件

如果需要调整配置文件的根文件夹路径请在引用Config模块前使用如下代码进行调整:

process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";

当然为了保证开发、测试和生产环境下能够支持不同的配置文件,默认为开发环境,如果需要修改请在引用Config模块前使用如下代码进行调整:

process.env.NODE_ENV = "stage";

当然在实际使用中,都是通过环境变量设置即可:

NODE_ENV=stage

那么读取的配置文件将会是如下文件:

default-stage.json
stage.json

如何调试单元测试

选择调试单元测试,并通过将launch.json中的参数修改为需要调试的ts文件即可,比如下方表示调试configuration.spce.ts

            "args": [
                "-u",
                "tdd",
                "-r",
                "ts-node/register",
                "--no-timeouts",
                "${workspaceFolder}/test/configuration.spec.ts"
            ]

但是直接使用vscode自带的断点是无法命中的,所以需要在需要调试的代码前临时增加一行代码debugger这样后面的断点才会命中。

如何扩展第三方库

在使用TypeScript开发过程中我们会需要许多第三方类库,而我们基本都是参考JavaScript的文档,这中间就带来了一个问题,就是可能我们通过文档发现其提供了某个方法,但是在我们使用TypeScript开发的时候发现并没有找个方法,这个时候我们不可能自己修改官方的dt.ts文件重新发布,那么我们可以通过以下方式来增加,比如我们使用的Socketio中的Socket对象在dt.ts中没有use方法,那么我们只要按照该接口所在的模块直接写同名接口并将缺少的方法写入其中即可:

declare module "socket.io" {
    interface Socket {
        use(fn:(packet: Array<any>, next: (Error?) => void) => void);
    }
}

实现与依赖框架

Related Repositories

guard-coffeescript

guard-coffeescript

Guard::CoffeeScript automatically compiles your CoffeeScripts ...

guard-coffeescript

guard-coffeescript

Guard::CoffeeScript compiles or validates your CoffeeScripts automatically when ...

mustang-vim

mustang-vim

A slightly modified version of the original mustang-colorscheme for vim by hcalv ...

hikey-coreos

hikey-coreos

CoreOS disk images for ARM64 boards ...

mustangproject

mustangproject

Sample application for the Mustang Project and some pdfbox samples creating PDF/ ...