tsc - 使用' import'在我的文件中

时间:2015-06-03 02:05:11

标签: typescript tsc

我有两个打字稿文件,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。一旦我删除该行,一切都正确编译。一旦我把它 - 它导致上述问题。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

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

  1. 使用内部模块,让编译器为您连接输出文件(从配置中删除module设置);
    @basarat advise你会反对它,但我认为这并不是那么糟糕,特别是对于小型项目。
  2. 使用外部模块并将输出文件与其他工具连接(设置"outDir":"public/"并从配置中删除out设置)。
  3. commonjs模块适用于Node.jsamd模块适用于require.js。如果您正在进行前端开发,最好使用amd或内部模块。

答案 1 :(得分:0)

传入文件

tsc app.ts --out all.js