2016-12-14 40 views
1

我是aurelia的新手,我需要創建框架的原型項目。在開始時,我計劃使用skeleton-typescript-aspnetcore框架,但是當我嘗試vs2017rc時,我發現它使用.csproj作爲默認格式(而vs2015是project.json/.xproj),我認爲我們應該遵循vs2017,因爲我們將在啓動後升級IDE。如何使用vs2017rc創建aurelia打字稿項目

的vs2017有一個嚮導升級.xproj項目,但升級(骨架打字稿-aspnetcore)後,仍有大量的錯誤在我前面......

我也試過Aurelia大街,CLI,但似乎它還不支持vs2017,有沒有人可以給出一個指導來創建原型項目?我會整合一些像上面提到的骨架插件,如吞嚥,業力,微風...

謝謝你提前。

+0

我會打開這個作爲骨架回購的問題,並粘貼到您的項目正在嘗試這一點的鏈接。這不太適合StackOverflow,它更像是一項功能請求。 –

+0

聽起來不錯,謝謝 – even

回答

2

由於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中的任何內容。 –