2016-10-24 39 views
0

我有这样的配置的WebPack的WebPack内置打字稿文件模块是空的对象

module: { 
    loaders: [ 
    { test: /\.ts$/, loader: 'awesome-typescript-loader' } 
    ] 
} 

也该在tsconfig.json

{ 
    "compilerOptions": { 
     "target": "es5", 
     "module": "commonjs", 
     "moduleResolution": "node" 
    }, 
    "files": [ 
     "./src/library.ts", 
     "./src/test-utils.ts", 
     "./src/request-service", 
     "./typings/index.d.ts" 
    ] 
    } 

,这在试验摩卡:

const Library = require('../dist/library'); 

const testUtils = require('../dist/test-utils'); 

const MockRequestService = testUtils.MockRequestService; 

const assert = require('assert'); 

const djs = new Library('/'); 

testUtils和Library是空的对象。所以新的库抛出错误,它不能用于新的,因为它不是一个构造函数。

我做了适当的导出默认和出口,因为我在简单的babel + es6构建和/ dist文件似乎没问题。试图找出,也许我做了typescript配置(新的它)的一些错误?我有类似于webpack入口点的依赖关系(test-utils从库导入接口),但(!)由于TypeScript中的接口,我只从其他模块导入它们,这就是为什么有hack in webpack config([]括号中的条目)

回答

1

testUtils和Library是空的对象。所以新的库抛出错误,它不能用于新的,因为它不是一个构造函数。

使用import,而不是要求:

import Library = require('../path/to/src/library'); 

并与TS-节点运行摩卡:https://github.com/TypeStrong/ts-node#mocha

+0

谢谢!对于那些寻求帮助的人的一些额外信息: – idchlife

+0

您不能在nodejs测试中使用webpack捆绑模块,因为它们就像节点模块一样(没有专门为节点构建它们)。所以...更好地测试源代码,然后! – idchlife