在“module”全局variables上运行grunt-typescript时,angular-mock和node.js发生冲突

我正在使用grunt -criptcript,它正在编译我所有的* .ts文件。 我使用angular-mocks.d.ts和node.d.ts,但是我在我的实际ts文件中分别引用它们。 我只使用angular度嘲笑茉莉花testing,我在我的server.ts文件中使用节点。
我遇到的问题是,即使它们被单独引用,当它们在grunt-typescript中编译时,它似乎将它们倾倒在一起,使得它们的两个不同的“模块”定义最终冲突。 如果我使用tsc(它引用node.d.ts)自己构build我的server.ts文件,它会生成。 这两个应该永远不会重合,所以对我来说不是一个真正的冲突,除了它正在成为一个grunt-typescript,它似乎将所有* .d.ts文件转储到一起,因为它正在编译。 我认为这是因为它是一起构build我所有的* .ts文件,因此最终将* .d.ts文件一起放入一个公共空间。

我得到的错误:

c:/node/bills/typings/node/node.d.ts(37,13):错误TS2134:随后的variables声明必须具有相同的types。 variables'module'必须是'(… modules:any [])=> any'types,但是这里的types是'{exports:any; require(id:string):any; id:string; 文件名:string; loaded:boolean; 父母:任何; 儿童:任何[]; }”。

angular-mocks.d.ts “模块”定义:

declare var module: (...modules: any[]) => any; 

node.d.ts “模块”定义:

 declare var module: { exports: any; require(id: string): any; id: string; filename: string; loaded: boolean; parent: any; children: any[]; } 

这最终为我工作。 我将我的testing.ts文件分成单独的打字稿。 这导致它不运行我的testing声明和我的运行时声明。 在分离的情况下,模块环境声明不再发生冲突。

  typescript: { options: { target: 'es5', //or es3 base_path: '', sourcemap: true, declaration: false }, server: { src: ['*.ts'] }, test: { src: ['test/*.ts'] } }, watch: { files: ['*.ts', 'test/*.ts'], tasks: ['typescript:server', 'typescript:test'] } 

这是一个已知的问题!

它已被提出请求/合并 ..

解决方法是使用angular.mock.module而不是module