Webpack构建的typescript文件 - 模块是空对象

时间:2016-10-24 19:51:36

标签: typescript webpack typescript2.0

我在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配置中(条目的[]括号)

1 个答案:

答案 0 :(得分:1)

  

testUtils和Library是空对象。因此,新的库会抛出错误,因为它不是构造函数,因此无法与new一起使用。

使用import代替require:

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

使用ts-node运行mocha:https://github.com/TypeStrong/ts-node#mocha