【问题标题】:How to compile a TypeScript file from within the new Visual Studio Code on Mac OS X如何在 Mac OS X 上从新的 Visual Studio Code 编译 TypeScript 文件
【发布时间】:2015-07-10 13:29:09
【问题描述】:

Microsoft 刚刚发布了适用于 Mac OS X 平台的新 Visual Studio Code。它支持 TypeScript,因为它可以获得 TypeScript 代码的自动完成和错误报告。

我的问题:我们如何在 Visual Studio Code 中编译 TypeScript 文件(以生成相应的 JavaScript 文件)?我已按照建议创建了一个默认的 tsconfig.json 文件,仅使用 {},并尝试调用 shift+command+B 但这不会生成更新的 JavaScript 文件。

【问题讨论】:

标签: javascript macos typescript visual-studio-code


【解决方案1】:

您需要设置一个任务来执行此操作。

如果我在使用不同的操作系统时弄错了捷径,我提前道歉。对于使用 Windows 的任何人,它将是 CTRL - 我认为 OSX 版本只是意味着使用 CMD 代替。

如果您按CTRL + SHIFT + P,您应该会出现一个操作菜单,允许您搜索所有命令。

输入Configure Task Runner。如果您还没有,这将在设置文件夹中为您创建一个 tasks.json 文件。否则,它将打开现有的 tasks.json 文件。

您可以取消注释内置的 TypeScript 任务 - 它看起来像这样(我的主文件是 app.ts,这个文件中的默认是 HelloWorld.ts):

// A task runner that calls the Typescipt compiler (tsc) and 
// Compiles a HelloWorld.ts program
{
    "version": "0.1.0",

    // The command is tsc.
    "command": "tsc",

    // Show the output window only if unrecognized errors occur. 
    "showOutput": "silent",

    // Under windows use tsc.exe. This ensures we don't need a shell.
    "windows": {
        "command": "tsc.exe"
    },

    // args is the HelloWorld program to compile.
    "args": ["app.ts"],

    // use the standard tsc problem matcher to find compile problems
    // in the output.
    "problemMatcher": "$tsc"
}

然后您可以使用 CTRL + SHIFT + B 按需执行此任务。

如果您定义了多个任务,您可以使用CTRL + E 并输入task(注意“任务”后面的空格),它会为您提供所有任务的列表供您选择。

你的手不需要离开键盘!

最后...如果您仍然一无所获,请检查窗口底部的此图标,因为您可能遇到编译器错误...(下面的图标显示一个错误 - 在您的编辑器中单击它以获取详细信息)。

【讨论】:

  • 我在 Steve Fenton 的帖子中有一个 tasks.json 文件(除了我用我的 TypeScript 文件的名称代替 app.ts)。当我通过 CMD + SHIFT + B 启动它时,我看到这条垂直线旋转,表明正在发生一些活动,但没有生成与我最近的 TypeScript 代码相对应的新 JavaScript 文件输出。
  • @RichardFuhr 你能和我分享你的文件吗,这样我可以看看我是否可以重现这个问题。我主要需要你的 tsconfig.json 和你的 tasks.json 文件。
【解决方案2】:

我遇到了与 tsc 转译器相同的问题(因为它将源代码从一种格式编译为另一种格式)没有生成“.js”文件。

解决方法:

尝试在 Windows 命令提示符中执行以下命令(cmd.exe - 以管理员身份运行):

tsc test.ts

确保您位于正确的文件夹路径中,否则请提供“.ts”文件的绝对路径

希望它应该在与“.ts”文件相同的文件夹中生成“.js”文件。

既然生成了“.js”文件,为了避免每次修改都执行上面的命令,可以在tsc中执行一个自动编译的watch命令。

要对“.ts”文件执行自动转换,请尝试运行以下命令:

tsc test.ts --watch

现在,如果您返回“.ts”文件并进行更改并点击保存,它将执行自动转换并立即更新您的“.js”文件。 记得保持命令提示符运行。

我还没有探究为什么 tsc 转译器不能在 Visual Studio Code 的 Ctrl + Shift + B 按键上工作的原因,但我最好的猜测是我使用的 tsc 版本存在问题Visual Studio Code 安装或定义的 环境 PATH 变量 或 npm 安装了不同的 tsc 版本。原因可能有多种。

输出:

但对于那些想要快速完成工作的人,我希望这个解决方法有所帮助。

【讨论】:

    【解决方案3】:

    您需要一个 tsconfig.json 文件来定义 TypeScript 编译器的所有选项,并需要一个 tasks.json 文件来设置编译器选项。

    tsconfig.json

    {
        "compilerOptions": {
            "target": "ES5",
            "module": "amd",
            "sourceMap": false
        }
    }
    

    tasks.json ... 查看带有 ${file} 的“args”行来编译打开的文件。

    {
        "version": "0.1.0",
    
        // The command is tsc.
        "command": "tsc",
    
        // Show the output window only if unrecognized errors occur. 
        "showOutput": "silent",
    
        // Under windows use tsc.exe. This ensures we don't need a shell.
        "windows": {
            "command": "tsc.exe"
        },
    
        // args is the HelloWorld program to compile.
        "args": ["${file}"],
    
        // Use the standard tsc problem matcher to find compile problems
        // in the output.
        "problemMatcher": "$tsc"
    }
    

    更多信息:http://blogs.msdn.com/b/typescript/archive/2015/04/30/using-typescript-in-visual-studio-code.aspx

    【讨论】:

      【解决方案4】:

      我找到了适用于 Mac 的解决方案。在 args 行中,我输入了要编译的 TypeScript 文件的完整路径名。然后,使用 CMD + SHIFT + B 启动构建确实成功地运行了 tsc 编译器并成功生成了相应的 JavaScript 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-10
        • 2023-03-08
        • 2019-01-31
        • 1970-01-01
        • 2017-11-05
        • 2019-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多