2016-10-24 46 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