0

我有两个打字稿文件,app.ts和 `angular2.d.ts'(其中包含 angular2 的类型定义)

我的tsconfig.json文件看起来像这样:

{
"compilerOptions": {
    "module": "commonjs",
    "out": "public/all.js",
    "sourceMap": true,
    "watch": true,
    "target": "ES5"
},
"files": [
    "typings/angular2/angular2.d.ts",
    "src/app.ts"   
]}

预期结果 -public/all.js将包含已编译的 ts 文件。

实际结果 -src/app.js创建文件,其中包含已编译的 ts 文件。 public/all.js也被创建,但它只包含以下行:( //# sourceMappingURL=all.js.map即只是源映射,没有实际代码)

进一步调查时,有问题的行是: import {Component, View, bootstrap} from 'angular2/angular2';src/app.ts. 一旦我删除该行,一切都会正确编译。一旦我把它放回去 - 它会导致上述问题。

我究竟做错了什么?

4

2 回答 2

2

设置"out":"public/all.js""module":"commonjs"是互斥的。您应该:

  1. 使用内部模块并让编译器为您连接输出文件(module从配置中删除设置);
    @basarat建议您不要这样做,但我认为这还不错,尤其是对于小型项目。
  2. 使用外部模块并将输出文件与其他工具连接(从配置中设置"outDir":"public/"和删除out设置)。

commonjs模块用于Node.jsamd模块用于require.js。如果你在做前端开发,最好使用amd内部模块。

于 2015-06-03T10:20:17.997 回答
0

传入文件

tsc app.ts --out all.js
于 2015-06-03T02:10:33.727 回答