2015-11-04 133 views
4

我已经与Visual Studio 2015一起在这里尝试Angular2(2.0.0-alpha.44)的最新版本angular2是我使用的所有版本那这个问题是相关的:的Visual Studio 2015年,打字稿与tsconfig.json

  • 的Visual Studio 2015年
  • Asp.NET 5
  • 打字稿1.6
  • ReSharper的10
  • 角2.0.0 alpha.44

这里是我的解决方案:

solution explorer

我所有的打字稿是在/ TS目录,其中也有tsconfig.json文件。这使得Visual Studio中一旦显示“打字稿虚拟项目”

tsconfig.json solution with ts virtual project

因为我把import {Component, bootstrap} from "angular2/angular2";线到我main.ts,发现在我的node_modules目录显示angular2库文件那些太(不知道扁平的目录结构是所有关于什么,虽然)

ts resharper warning

在这一点上,第t ypescript编译器将编译该单个文件(main.ts)。但是,它不再是编译的任何文件夹中的其他.ts文件,(之前将在angular2它是)的,并且它不指定outFile位置输出放置从我tsconfig.json

Resharper指示找到Componentbootstrap引用时出现问题,但工具提示似乎也理解这些签名是什么。不知道两者如何都可以是真实的。

如果我从等式中删除angular2,打字稿兴高采烈地跟随我tsconfig.json所有设置,编译所有.ts文件到app.js并将其置于../wwwroot/js/app.js

ts resharper warning with tooltip

有没有人获得VS2015,打字稿和angular2在一起打好?

+0

你表现出大提示实际上是一个是数据必须是相同的Resharper工具提示(“Symbol'Component'不能是......”)和VS工具提示的组合。 VS已成功找到该文件。 R#正在抱怨。您可以通过禁用R·现在我有更多的运气编译 – nickspoon

回答

2

TypeScript Handbook:

在打字稿,就像在2015年的ECMAScript,含有 顶级进口或出口任何文件被认为是一个模块。

正如有JS文件和 模块之间的一对一对应,打字稿具有模块 源文件和它们的射出JS文件之间的一对一对应。其中一个影响是 无法使用--outFile编译器开关将 多个模块源文件连接到单个JavaScript文件中。

我相信这是您在“从等式中删除角2”时输出的原因。模块和outFile不兼容。改为使用outDir

另外,我还试图把tsconfig文件中的子文件夹,但Visual Studio的不尊重,所以我把它回到项目根。

+0

谢谢,@Hristo。这是我从各种分散的教程/样本中实现的许多事情之一。没想到我刚读了打字稿手动:) – Twicetimes

+0

打字稿1.8.10似乎很好地工作--outfile,但只有当我tsconfig是在项目的根目录 – ps2goat

+0

看来,打字稿以来相当大的演变上面引用的文字是写的。截至2016年,这句话是不正确的。这是最绝对有可能的,并且在野外使用“大规模”,写模块基于打字稿代码,然后再输出一个单独的文件,使用“系统”包布局选项。 –

1

我一直在努力,现在的几个星期。看来d.ts文件仍然不正确。如果您发现,定义文件仍然在阿尔法38,或39

即使定义文件并不在阿尔法38,或39,并从正确的版本创建的,我仍然不认为你可以得到它的工作,因为它不以任何方式或形式固化,它还缺了一堆东西,我相信。

你得到我还没有看到,我不使用ReSharper的(虽然我不认为这确实应该引起你的问题做)的错误。我能说的是,我确实有与阿尔法26的成功,在这里找到:

https://github.com/microsoft/ngconf2015demo

它可能不会帮助你,因为它是这样一个早期的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示例的步骤)。

我仍然在工作中尝试每一天,所以如果我能够得到它的运行(我不认为如果不深入angular2代码基础并学习它,我不会做到这一点,我可能会在接下来的几周内做),我会编辑这个回复并且让你知道。与此同时,不要堵塞,看看你是否可以让它工作,让我知道!

在我看来,采用angular2需要尽快发生,因为使用angular2的优势不能充分表达。不幸的是,因为许多在任何应用程序中绝对需要的指令仍然使用angular 1.4,所以UpgradeAdapter(ngUpgrade)需要在可用之前可用。

编辑:

事实上,它似乎不是TSD现在定义文件所在的angular2源内现在。尝试从angular2源获取d.ts文件,然后尝试编译打字稿文件。

+0

测试,但结果似乎取决于我是否让视觉工作室做到这一点,或者建立自己一口任务手动调用TSC变化。 Visual Studio似乎并不尊重所有可能的tsconfig.json设置。至于angular2的东西,我觉得有一些是我缺乏的模块定义文件是如何工作的,用飞溅的理解“以及它仍然处于alpha,对付它”。 正如你在编辑提到 - 的.d.ts文件现在捆绑了angular2 - 看起来有可能是一个趋势,从definitelyTyped回购走了一些库 – Twicetimes

0

Setup ASP.Net 5 with angular 2.0遵循所有的步骤页面。它为我工作。

要编译all.ts文件服务器是否正在运行.js文件不管。

打开的PowerShell - >重定向到项目的根文件夹,并键入“TSC”。它会编译所有文件。

如果你想编译所有.js文件时的.ts文件保存/更新然后键入 - 在PowerShell中“TSC表”和不要将其关闭。

您必须安装节点。

创建以下文件,并从Angualr quick start

tsconfig.json
typings.json
的package.json

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

+0

是的,自从进入测试版以来,我获得了更多的成功。现在更加直截了当。 – Twicetimes