0

我工作的this answer限定没有定义,AMD-装载机VS CommonJS的

当我编译main.ts第一部分的js

require("amd-loader"); 
import someModule = require('../mymodule') 
var someClass = new someModule.MyNamespace.MyClass(); 

就变成:

define(["require", "exports", '../mymodule'], function (require, exports, someModule) { 
    require("amd-loader"); 
    var someClass = new someModule.MyNamespace.MyClass(); 
}); 

那么它给我define is not defined错误

当我修改它如下,错误aw唉。

require("amd-loader"); 
define(["require", "exports", '../mymodule'], function (require, exports, someModule) { 
    var someClass = new someModule.MyNamespace.MyClass(); 
}); 

然后我得到Cannot read property 'MyClass' of undefined错误

我怎样才能修复这些错误,并得到它的工作像预期的那样在Q&A提到?

我的环境是Visual Studio 2015,我用AMD选项作为模块系统进行编译(显然我试过每个选项)。我正在做角度量角器e2e测试

+0

可能重复[如何使用打字稿1.5加载外部AMD模块?](http://stackoverflow.com/questions/31964196/how-to- load-external-amd-module-using-typescript-1-5) –

+0

@DavidSherret但它是在谈论'TypeScript HTML应用程序',而我的量角器测试项目 –

回答

1

正如BASEAT在this answer所述,在这种情况下应该使用CommonJS。

在Visual Studio 2015年14.0.23.107.0版本,似乎打字稿模块系统选项不起作用,它总是编译与任何任意一个选择

enter image description here

所以以下this post CommonJS的可以选择。

瞧它编译与CommonJS的,并可作为预期