如何使用vs2017rc创建aurelia打字稿项目

如何使用vs2017rc创建aurelia打字稿项目

问题描述:

我是aurelia的新手,我需要创建框架的原型项目。在开始时,我计划使用skeleton-typescript-aspnetcore框架,但是当我尝试vs2017rc时,我发现它使用.csproj作为默认格式(而vs2015是project.json/.xproj),我认为我们应该遵循vs2017,因为我们将在启动后升级IDE。如何使用vs2017rc创建aurelia打字稿项目

的vs2017有一个向导升级.xproj项目,但升级(骨架打字稿-aspnetcore)后,仍有大量的错误在我前面......

我也试过Aurelia大街,CLI,但似乎它还不支持vs2017,有没有人可以给出一个指导来创建原型项目?我会整合一些像上面提到的骨架插件,如吞咽,业力,微风...

谢谢你提前。

+0

我会打开这个作为骨架回购的问题,并粘贴到您的项目正在尝试这一点的链接。这不太适合*,它更像是一项功能请求。 –

+0

听起来不错,谢谢 – even

由于Visual Studio 2017刚刚推出,我以为我会回答我是如何解决这个问题的,因为在使用“skeleton-typescript-aspnetcore”时仍然有很多错误。

使用https://github.com/aurelia/skeleton-navigation/releases/tag/1.1.2为出发点,这些都让它运行步骤:

当你第一次运行该项目,你会得到错误抱怨位于/测试一些文件/是不是在“ROOTDIR”。在您的tsconfig.json中,rootDir被定义为“src /”,这可以通过简单地将您的测试文件夹移动到src文件夹中来解决。这将导致新的错误,因为这些文件中定义的路径现在已经改变。您将需要编辑应用程序,子路由器和用户导入像这样: import {Users} from '../../users';智能感知应该帮助你在这里。

命令gulp test也不会更改为新的路径运行之前,你可以在karma.conf.js更改路径:

files: [ 
    'src/test/unit/setup.ts', 
    'src/test/unit/*.ts' 
], 

下一页文件users.ts会抛出这样的错误Type 'Response' is not assignable to type 'any[]'。你需要告诉打字稿你述说这样的:public users : Object = [];或者干脆:public users = {};

的最后一个问题是,你将有很多重复的标识错误,在写这篇文章的原因时这似乎来自TypeScript 2.2.1版所带来的变化。我不知道具体是什么突破,但我知道以前的版本2.1.5仍然有效。所以你需要做的是在你的src/skeleton目录下运行npm install [email protected] --save,--save只是为了更新你的package.json文件,如果你愿意的话,你也可以自己做。

完成之后,您的大量错误(其中20个)应该被解决。但仍有一些错误仍然是由重复签名造成的。再次,TypeScript 2.0+中的事情已经发生了变化,现在有一种获取和使用声明文件的简单方法。下面是关于如何使用@types功能的一个答案:How should I use @types with TypeScript 2,但为了保持这个简短和甜蜜,您将不得不转到您的tsconfig.json文件并明确告诉在何处查找@ types/node文件夹。这将是这个样子:

"compilerOptions": { 
... 
"typeRoots": [ 
    "node_modules/@types" 
], 
"types": [ "node" ] 
... 
}, 

希望这有助于这些变化的项目现在应该建立和正确启动。

编辑: 我最近遇到了一些问题,建设我的项目。我又得到了很多重复的标识符......然而,跨越这个答案我跑SO:TypeScript throws multiple duplicate identifiers

显然打字稿最新的附带取定义开箱即用,所以我能够从链接答案运行命令:

npm uninstall @types/whatwg-fetch 

升级从打字稿2.1.5到最新:

npm install typescript --save 

你甚至可能要通过附加-g全球安装打字稿。 此外,这将继续,除非你注释掉/删除URL和从typings.json globalDependencies为了WHATWG取,以防止其重新创建本身是一个问题:

"globalDependencies": { 
    //"url": "github:aurelia/fetch-client/doc/url.d.ts#bbe0777ef710d889a05759a65fa2c9c3865fc618", 
    //"whatwg-fetch": "registry:dt/whatwg-fetch#0.0.0+20160524142046" 
    } 

然后你就可以删除的分型文件夹,运行typings install再次或在typings文件夹中编辑index.d.ts,并删除引用路径以获取whatwg-fetch和url。 希望这可以帮助那些即使在“修复”之后也可能遇到同样问题的人。

+1

为了正确编译打字稿,命令“npm install [email protected] --save”确实是必需的。其实它与VS 2017 typescript扩展版本相同。重复的定义问题是由于重复的jasmin定义:“typings \ globals \ jasmine \ index.d.ts”与“node_modules \ @types \ jasmine”我删除了第一个,然后我必须纠正..toBe('字符串')为.toBe('字符串')。 –

+0

这个答案可以稍微改进。 tsconfig.json允许在'compilerOptions'中使用''rootDirs':[“/ src”,“/ test”]'而不是'rootDir'。这意味着你只需要将'users.spec.ts'中的用户引用更新为''../../ src/users''。这意味着你不需要更新Karma中的任何内容。 –