0

有没有办法强制 Sublime text 3 在保存时编译 Typescript 代码?在终端和 Sublime 之间来回切换有点烦人。谢谢!

4

4 回答 4

2

我不知道如何在保存时执行此操作,但您可以通过单击 ctrl+b 来执行此操作。为了使它起作用,请执行以下操作:

  1. 转到工具->构建系统->新建构建系统
  2. 复制并粘贴以下内容:

    {
        "cmd": ["tsc","$file"],
        "file_regex": "(.*\\.ts?)\\s\\(([0-9]+)\\,([0-9]+)\\)\\:\\s(...*?)$",
        "selector": "source.ts",
    
        "windows": {
            "cmd": ["tsc.cmd", "$file"]
        }
    }
    
  3. 将其保存为“myTypeScript.sublime-build”

  4. 工具->构建系统并选择您刚刚创建的构建系统“myTypeScript.sublime-build”

  5. 每次你想编译只需点击 ctrl+b

你可以在这里看到关于它的一些解释和更多信息

于 2017-02-20T09:57:19.063 回答
2

打开包含 .TS 文件的文件夹的终端窗口。执行 'tsc -w' 并让它监视对任何 .ts 文件的更改,并将它们编译为 .js 。您可以为 nodejs 使用最新的命令行 typescript(确保安装 nodejs 和它的 typescript)。让终端窗口保持打开状态,直到您想退出。无需在保存功能上进行任何编译。无论如何,这种选择很少受到尊重。sublime text 3 中的 typescript 包已经过时了。

于 2017-09-16T09:56:09.690 回答
1

谢谢!这适用于单个文件。但我忘了提到我在文件夹中有几个脚本。幸运的是,在网上找到了另一个解决方案。如果其他人需要它:

  1. 在所有脚本所在的同一文件夹中创建一个新文件(/js在我的例子中)并将其命名为 tsconfig.json
  2. 将此代码粘贴到文件中:
    { "compilerOptions": { "emitDecoratorMetadata": false, "module": "commonjs", "target": "ES5" }, "files":["your_script_0.ts", "your_script_1.ts"], "exclude": [ "node_modules" ] }
  3. 在终端导航到源文件夹(/js在我的例子中)并使用以下命令:

    • 一次性编译:tsc -p .
    • 保存时编译:tsc -w


如果我对命令的使用有误或不太正确,请纠正我。但至少该解决方案对我有用。

于 2017-02-21T04:06:33.803 回答
0

对于崇高的文本用户

  1. 从此站点安装包控制器。
  2. 打开 sublime text 并按下ctrl+shift+p并写入安装包,然后按 enter。
  3. Sublimeonsavebuild并按回车。
  4. 转到preferences > package settings > Sublimeonsavebuild > setting - user并粘贴下面的代码并保存。
{
    "filename_filter": "(/|\\\\|^)(?!_)(\\w+)\\.(ts|sass|less|scss)$",
    "build_on_save": 1
}
  1. 转到tools > build system > new build system并粘贴下面的代码,将其另存为“Typescript”并选择此构建。
{
    "cmd": ["tsc","$file"],
    "file_regex": "(.*\\.ts?)\\s\\(([0-9]+)\\,([0-9]+)\\)\\:\\s(...*?)$",
    "selector": "source.ts",

    "windows": {
        "cmd": ["tsc.cmd", "$file"]
    }
}
  1. 现在,每当您保存 .ts 文件时,它都会自动编译为 .js 文件。
  2. 享受!!
于 2018-11-19T13:22:12.837 回答