我正在尝试使用ngc和typescript@next来编译我的ionic 2 rc应用程序:
[ben@ben app2] $ ./node_modules/.bin/ngc -p tsconfig.json
Error: Metadata emit requires the sourceFiles are passed to WriteFileCallback. Update to TypeScript ^1.9.0-dev
at MetadataWriterHost.writeFile (/home/ben/blindmate/app2/node_modules/@angular/tsc-wrapped/src/compiler_host.js:97:23)
at Object.writeFile (/home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:58205:132)
at Object.writeFile (/home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:8508:14)
at printFile (/home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:55459:16)
at emitFile (/home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:55409:21)
at onSingleFileEmit (/home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:8415:13)
at Object.forEachTransformedEmitFile (/home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:8392:21)
at Object.emitFiles (/home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:55392:12)
at emitWorker (/home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:58256:33)
at /home/ben/blindmate/app2/node_modules/typescript/lib/typescript.js:58219:66我无法更改我的typescript版本(@next),因为我需要支持async / await。有没有办法在不安装typescript@1.9.0的情况下修复这个错误?
我的tsconfig如下所示:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"dom",
"es2015"
],
"module": "es2015",
"moduleResolution": "node",
"target": "es5"
},
"exclude": [
"node_modules",
".tmp",
"src/app/main.prod.ts"
],
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}发布于 2016-10-16 04:41:35
我一直在探索同样的事情,似乎Angular 2AOT编译器,至少是Ionic2 RC0使用的版本,在这一点上与TypeScript 2.1的预发布版本并不完全兼容。
如果您恢复到Ionic 2 RC0使用的Ionic 2.0版本,它将正常工作。你将不得不放弃异步/等待,但你并不真的需要异步/等待,因为你可以通过显式地创建和消费Promise来有效地编写相同的代码。它就是不那么简洁或富有表现力。:)这就是说,我希望异步/等待可能和你一样多,也会对尽快让它工作感兴趣。
https://stackoverflow.com/questions/39848499
复制相似问题