使用 Visual Studio 使用 TypeScript 构建 HTA(或单页本地 HTML 文件应用程序)
Using Visual Studio to build an HTA (or single-page local HTML file application) with TypeScript
我有一个相当大的 HTA,我仍然需要维护。我最初使用 Notepad++ 编写它,但由于它的发展,我现在对 TypeScript 提供的 Intellisense 功能很感兴趣。拥有 Visual Studio 的 HTML 和 CSS 开发工具也会很有帮助。
我知道我必须向应用程序添加类型注释,但这仍然值得我花时间,并且可以逐步完成。
使用 文件 -> 新项目 -> HTML 带有 TypeScript 的应用程序 输出用于 IIS Express 或其他 Web 服务器的 DLL。我需要的输出是编译为 Javascript 的 HTML、CSS 和 TypeScript,并在 HTML.
中调整了引用
简而言之,我需要以下内容:
- 输出 HTML/CSS 文件而不是 DLL(扩展名应重命名为 .hta 但我可以在 post-构建步骤中执行此操作.
- 将 TypeScript 文件输出为 Javascript
- 项目中包含的所有 TypeScript/Javascript 个文件的 Intellisense
- 可选地,允许通过 Nuget 添加 Javascript/TypeScript 库(我可以手动添加它们,但我不想这样做)。
- 可选地,Visual Studio 调试(使用 Javascript 中的
debugger
关键字允许我使用 Visual Studio 启动调试会话,一旦 HTA 使用 mshta.exe
可执行文件。但是,如果不修改代码就可以在编辑器中设置断点 window。)
如何在这种情况下使用 Visual Studio (2013 Professional)?
注意。我在将 Visual Studio 用于桌面应用程序(C#/VB.NET 和 WPF)方面拥有丰富的经验,但我在 Web 开发方面没有经验。我对 HTA 环境中的 HTML、CSS 和 Javascript 有一定的了解。
更新
我尝试创建一个新网站(文件 -> 新网站...)但我无法将 TypeScript 文件添加到该网站。
VS 2013 运行良好。 VS 2013 有 Grunt/Gulp 个任务运行器,一些由 MS 制作,另一些由第三方制作。
使用 Grunt 或 Gulp 作为构建过程的一部分。您可以将 Grunt 和 Gulp 作为构建任务启动。应该使用任一个任务运行器来缩小、连接和版本化 js 和样式。它甚至可以用于编译 Typescript,尽管 msbuild 在这方面做得很好。
忽略Msbuild制作的dll。不要部署它。我所在的团队正在使用打字稿在 vs2013 上构建一个 spa 应用程序,它作为两个最小化的 js 文件、一个 css 文件、一些图像和字体资产以及一个 Linux/Apache 部署到 Linux/Apache =18=] 文件。
我创建了一个新的 "HTML Application with TypeScript" 项目。这给了我 1-4 分。
我在解决方案中将 "index.html" 重命名为 "index.hta" -- 在 post-build 中不需要这样做。 Visual Studio 将 .hta 扩展名识别为 HTML 文件。
我将构建属性设置为 mshta.exe
作为外部程序打开,并将 HTA 的完整路径作为命令行参数。我一直无法将当前的Visual Studio window附加到HTA进程(所以没有断点),但是debugger
语句打开一个JIT调试对话框并提示打开一个新的Visual Studio 会话,具有完整的调试功能。
一个意外的收获是我可以调试TypeScript文件,不局限于调试生成的Javascript.
更新
目前,我更愿意使用Visual Studio代码进行HTA开发;我回答这个问题时 VS Code 不可用。对于此任务,Visual Studio 与 VS Code 相比没有优势。
我有一个相当大的 HTA,我仍然需要维护。我最初使用 Notepad++ 编写它,但由于它的发展,我现在对 TypeScript 提供的 Intellisense 功能很感兴趣。拥有 Visual Studio 的 HTML 和 CSS 开发工具也会很有帮助。
我知道我必须向应用程序添加类型注释,但这仍然值得我花时间,并且可以逐步完成。
使用 文件 -> 新项目 -> HTML 带有 TypeScript 的应用程序 输出用于 IIS Express 或其他 Web 服务器的 DLL。我需要的输出是编译为 Javascript 的 HTML、CSS 和 TypeScript,并在 HTML.
中调整了引用简而言之,我需要以下内容:
- 输出 HTML/CSS 文件而不是 DLL(扩展名应重命名为 .hta 但我可以在 post-构建步骤中执行此操作.
- 将 TypeScript 文件输出为 Javascript
- 项目中包含的所有 TypeScript/Javascript 个文件的 Intellisense
- 可选地,允许通过 Nuget 添加 Javascript/TypeScript 库(我可以手动添加它们,但我不想这样做)。
- 可选地,Visual Studio 调试(使用 Javascript 中的
debugger
关键字允许我使用 Visual Studio 启动调试会话,一旦 HTA 使用mshta.exe
可执行文件。但是,如果不修改代码就可以在编辑器中设置断点 window。)
如何在这种情况下使用 Visual Studio (2013 Professional)?
注意。我在将 Visual Studio 用于桌面应用程序(C#/VB.NET 和 WPF)方面拥有丰富的经验,但我在 Web 开发方面没有经验。我对 HTA 环境中的 HTML、CSS 和 Javascript 有一定的了解。
更新
我尝试创建一个新网站(文件 -> 新网站...)但我无法将 TypeScript 文件添加到该网站。
VS 2013 运行良好。 VS 2013 有 Grunt/Gulp 个任务运行器,一些由 MS 制作,另一些由第三方制作。
使用 Grunt 或 Gulp 作为构建过程的一部分。您可以将 Grunt 和 Gulp 作为构建任务启动。应该使用任一个任务运行器来缩小、连接和版本化 js 和样式。它甚至可以用于编译 Typescript,尽管 msbuild 在这方面做得很好。
忽略Msbuild制作的dll。不要部署它。我所在的团队正在使用打字稿在 vs2013 上构建一个 spa 应用程序,它作为两个最小化的 js 文件、一个 css 文件、一些图像和字体资产以及一个 Linux/Apache 部署到 Linux/Apache =18=] 文件。
我创建了一个新的 "HTML Application with TypeScript" 项目。这给了我 1-4 分。
我在解决方案中将 "index.html" 重命名为 "index.hta" -- 在 post-build 中不需要这样做。 Visual Studio 将 .hta 扩展名识别为 HTML 文件。
我将构建属性设置为 mshta.exe
作为外部程序打开,并将 HTA 的完整路径作为命令行参数。我一直无法将当前的Visual Studio window附加到HTA进程(所以没有断点),但是debugger
语句打开一个JIT调试对话框并提示打开一个新的Visual Studio 会话,具有完整的调试功能。
一个意外的收获是我可以调试TypeScript文件,不局限于调试生成的Javascript.
更新
目前,我更愿意使用Visual Studio代码进行HTA开发;我回答这个问题时 VS Code 不可用。对于此任务,Visual Studio 与 VS Code 相比没有优势。