我在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"
]
}
这是在mocha的测试中:
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是空对象。因此,新的库会抛出错误,因为它不是构造函数,所以它不能与new一起使用。
我做了正确的导出默认导出和导出,就像我在简单的babel + es6构建和/ dist中的文件似乎没问题。试图弄清楚,也许我对typescript配置(新的)做错了吗?
编辑:值得一说,我有类似依赖webpack入口点(来自库的test-utils导入接口)但是(!)因为TypeScript中的接口,我只从其他模块导入它们,这就是为什么有hack在webpack配置中(条目的[]括号)答案 0 :(得分:1)
testUtils和Library是空对象。因此,新的库会抛出错误,因为它不是构造函数,因此无法与new一起使用。
使用import
代替require:
import Library = require('../path/to/src/library');
使用ts-node运行mocha:https://github.com/TypeStrong/ts-node#mocha