Ionic 2:ngc编译失败(元数据发出需要将sourceFiles传递给WriteFileCallback)

时间:2016-10-04 09:16:38

标签: angular ionic-framework ionic2 angular-compiler-cli

我尝试使用带有typescript @ next的ngc编译我的离子2 rc应用程序:

around 'update_model'

我无法更改我的打字稿版本(@next),因为我需要支持async / await。有没有办法修复此错误而不安装typescript@1.9.0,因为错误消息建议?

我的tsconfig看起来像这样:

[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

1 个答案:

答案 0 :(得分:1)

我一直在探索同样的事情,似乎Angular 2 AOT编译器,至少是Ionic 2 RC0使用的版本,此时与TypeScript 2.1的预发布版本不完全兼容。

如果您恢复为TypeScript 2.0,这是Ionic 2 RC0使用的版本,它将起作用。您将不得不放弃异步/等待,但您并不真正需要 async / await,因为您可以通过显式创建和使用Promise来有效地编写相同的代码。它不是那么简洁或富有表现力。 :)那就是说,我想要 async / await可能和你一样多,并且也有兴趣让它尽快运行。