我有一个以前用 webpack + awesome-typescript-loader 构建的项目,并且正在尝试使用 ngc 以便我可以进行 AOT 编译。但是,运行 ngc 时"node_mdoules/.bin/ngc" -p tsconfig-aot.json
出现错误:
Error at
C:/path/Scripts/aot/Scripts/apps/shared/shared.app.module.ngfactory.ts:205:136: Property 'RequestOptionsArgs' does not exist on type 'typeof "C:/path/node_modules/@angular/http/src/interfaces".
这是有道理的,我在我的一项服务中使用该接口
import { RequestOptions, RequestOptionsArgs } from '@angular/http';
如果我浏览到它正在查找的位置,/node_modules/@angular/http/src/interfaces.js
并且界面定义在相邻的/node_modules/@angular/http/src/interfaces.d.ts
.
我不明白的是如何让它在interfaces.d.ts中获取该接口。
这是我的 tsconfig-aot.json:
{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true
},
"types": [
"core-js"
],
"angularCompilerOptions" : {
"genDir" : "Scripts/aot",
"skipMetadataEmit" : true
}
}
与原始的不同之处在于模块类型“commonjs”-> es2015 和新的 angularCompiler 选项。