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。这是我使用的所有版本与此问题相关:
- Visual Studio 2015
- Asp.NET 5
- 打字稿 1.6
- Resharper 10
- Angular 2.0.0-alpha.44
这是我的解决方案:
我所有的打字稿都在/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 表示查找 Component
和 bootstrap
引用时出现问题,但工具提示似乎也能理解它们的签名是什么。不确定两者如何为真。
如果我从等式中删除 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 文件,然后尝试编译打字稿文件。
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
我一直在试用 Angular2 (2.0.0-alpha.44) 的最新版本以及 Visual Studio 2015。这是我使用的所有版本与此问题相关:
- Visual Studio 2015
- Asp.NET 5
- 打字稿 1.6
- Resharper 10
- Angular 2.0.0-alpha.44
这是我的解决方案:
我所有的打字稿都在/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 表示查找 Component
和 bootstrap
引用时出现问题,但工具提示似乎也能理解它们的签名是什么。不确定两者如何为真。
如果我从等式中删除 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 文件,然后尝试编译打字稿文件。
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