Visual Studio 2015,Typescript 和 angular2 tsconfig.json

Visual Studio 2015, Typescript and angular2 with tsconfig.json

我一直在试用 Angular2 (2.0.0-alpha.44) 的最新版本以及 Visual Studio 2015。这是我使用的所有版本与此问题相关:

这是我的解决方案:

我所有的打字稿都在/Ts目录下,里面还有一个tsconfig.json文件。这使得 Visual Studio 显示 'typescript virtual project'

一旦我将 import {Component, bootstrap} from "angular2/angular2"; 行放入我的 main.ts,它就会在我的 node_modules 目录中找到 angular2 库文件并且也显示那些(虽然不确定扁平目录结构是什么)

此时,typescript 编译器将编译该单个文件 (main.ts)。但是,它不再编译该文件夹中的任何其他 .ts 文件(在引入 angular2 之前),并且它不会将输出放在我的 [=] 指定的 outFile 位置47=]tsconfig.json

Resharper 表示查找 Componentbootstrap 引用时出现问题,但工具提示似乎也能理解它们的签名是什么。不确定两者如何为真。

如果我从等式中删除 angular2,typescript 会愉快地遵循我 tsconfig.json 中的所有设置,将所有 .ts 文件编译成 app.js 并且把它放在 ../wwwroot/js/app.js

有没有人成功地让 VS2015、typescript 和 angular2 很好地协同工作?

我已经尝试了几个星期了。似乎 d.ts 文件仍然不正确。如果您注意到,定义文件仍在 alpha 38 或 39 上。

即使定义文件不是在 alpha 38 或 39 上,并且是从正确的版本创建的,我仍然不认为你可以让它工作,因为它没有任何形状或形式凝固,我相信它仍然缺少很多东西。

我还没有看到你遇到的错误,而且我没有使用 resharper(虽然我认为这不应该真的导致你的问题)。我能说的是,我在 alpha 26 上确实取得了成功,可在此处找到:

https://github.com/microsoft/ngconf2015demo

它可能不会帮助你,因为它是一个早期的 alpha 版本。

此外,在较新的 alpha 中,他们已经开始创建 UpdateAdapter,可以在此处找到示例:

http://blog.thoughtram.io/angular/2015/10/24/upgrading-apps-to-angular-2-using-ngupgrade.html

这是一个非常重要的组件,因为每个尝试尽早采用的人都希望在 angular2.

中使用 angular1 指令

我也无法让它工作(即使这是一个超级新的 alpha 版本)。定义文件仍然只有39个,它们之间存在一些差异。即使我按原样导入他的整个项目,也有许多缺失的引用和导出。对此无能为力,除了尝试自己修改 d.ts 文件以消除构建错误。

此外,我认为模块系统应该设置为 AMD。这将帮助您更接近克服编译时错误。此外,在 visual studio 中,你需要将标准设置为 es5,我相信为了让 angular2 到 运行 目前(但我不确定,这只是我用来获取 alpha 26 示例 运行ning 的步骤)。

我仍然每天都在努力工作,所以如果我能够得到它 运行ning(我认为如果不深入 angular2 代码库并学习它,我可能会在接下来的几周内完成),我将编辑此回复并让您知道。与此同时,继续加班,看看你是否能让它工作并让我知道!

在我看来,任何行业领导者都需要尽快采用 angular2,因为使用 angular2 的优势无法充分表达。不幸的是,由于任何应用程序中绝对需要的许多指令仍在使用 angular 1.4,因此从业务角度来看,UpgradeAdapter (ngUpgrade) 需要在 angular2 有用之前可用。

编辑:

实际上,定义文件现在似乎位于 angular2 源中,而不是 tsd。尝试从 angular2 源中获取 d.ts 文件,然后尝试编译打字稿文件。

来自TypeScript Handbook:

In TypeScript, just as in ECMAScript 2015, any file containing a top-level import or export is considered a module.

Just as there is a one-to-one correspondence between JS files and modules, TypeScript has a one-to-one correspondence between module source files and their emitted JS files. One effect of this is that it's not possible to use the --outFile compiler switch to concatenate multiple module source files into a single JavaScript file.

我相信这就是你在"remove angular2 from the equation"时有输出的原因。模块和 outFile 不兼容。请改用 outDir

此外,我曾尝试将 tsconfig 文件放在子文件夹中,但 Visual Studio 不尊重它,所以我将其移回项目根目录。

Setup ASP.Net 5 with angular 2.0 按照页面中的所有步骤进行操作。它对我有用。

将 all.ts 文件编译为 .js,无论服务器是否为 运行。

打开 PowerShell -> 重定向到项目的根文件夹并键入 'tsc'。它将编译所有文件。

如果你想在 .ts 文件是 saved/updated 时编译所有 .js 文件,那么在 PowerShell 中输入 'tsc--watch' 并且不要关闭它。

您必须安装 Node。

创建以下文件,数据必须与来自 Angualr quick start

的相同

tsconfig.json
typings.json
package.json

Visual studio plugin to open project root folder in CMD or PowerShell