2016-07-01 89 views
2

從Beta-17遷移到RC4後,我遇到了很少問題。我收到以下編譯錯誤angular2中遷移到RC4後的問題

引導錯誤

/// < reference path="../node_modules/angular2-in-memory-web-api/typings/browser.d.ts" > 
import {bootstrap} from '@angular/platform-browser'; 
Error: Module "../platform-browser/index" as no exported member bootstrap 

路由器錯誤

import {ROUTER_PROVIDERS, RouteConfig, ROUTER_DIRECTIVES, RouteParams, ROUTER_BINDINGS} from '@angular/router'; 
Error: Cannot find module '@angular/router' 

我試圖與路由器棄用的爲好,還是越來越沒有找到模塊錯誤

import {ROUTER_PROVIDERS, RouteConfig, ROUTER_DIRECTIVES, RouteParams, ROUTER_BINDINGS} from '@angular/router-deprecated'; 
Error: Cannot find module '@angular/router-deprecated' 

如果現有的路由器已被棄用,那麼實現路由的新方法是什麼ING?

我在以下documentation URL中驗證過,但無法注意到很多不同之處。

任何人都可以分享一些光?

更新爲每點評:新一系列的錯誤

我能導入引導現在的路由器,但我得到了一些其他錯誤

錯誤#1,不能進口RouteConfig

import { ROUTER_DIRECTIVES, RouterOutlet, RouteConfig } from '@angular/router'; 
Error: Module "../angular/router/index has no exported member RouteConfig" 

爲了使路由器棄用即我現有路線的執行工作,我需要進口RouteConfig。 我不知道我在哪裏可以導入RouteConfig

  • 除了這個,我越來越近210編譯錯誤像下面。當我搜索了以下錯誤,建議增加以下行

    /// ../node_modules/angular2/typings/browser.d.ts」 />

  • 但隨着部分遷移的我已經添加下面的線

    /// < reference path="../node_modules/angular2-in-memory-web-api/typings/browser.d.ts" > 
    

    錯誤:

    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\async.d.ts 34 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\async.d.ts 35 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 9 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 15 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 16 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 17 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 17 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 18 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 18 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 19 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 19 Active 
    Error TS2304 Cannot find name 'Promise'. TypeScript Virtual Projects ..\node_modules\@angular\core\src\facade\promise.d.ts 20 Active 
    
    
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\repeat.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\retry.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\retryWhen.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\sample.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\sampleTime.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\scan.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\share.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\single.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\skip.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\skipUntil.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\skipWhile.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\startWith.d.ts 2 Active 
    Error TS2664 Invalid module name in augmentation, module '../../Observable' cannot be found. TypeScript Virtual Projects ..\node_modules\rxjs\add\operator\subscribeOn.d.ts 2 Active 
    
    +0

    雖然現在看起來好像Krishnan的代碼工作,但我已經看到ES2664無效的模塊名稱與Observable模塊使用Visual Studio 2015(更新3),顯然也出現在更新2和VS2013中 - 在我的情況下由於VS TypeScript工具問題,並且下面的URL有一個解決方法:https://github.com/Microsoft/TypeScript/issues/8518 – Jamie

    回答

    2

    首先,儘量讓你的引導functi來自:

    import {bootstrap} from '@angular/platform-browser-dynamic'; 
    

    其次,新的路由器有一個完全新的API,這意味着你會從它導入了不同的模塊,當你得到它的工作和它的作品爲已過時的版本完全不同。可能最好先試着讓router-deprecated版本開始工作,因爲您的beta.17版本的項目將大部分符合棄用的路由器。

    找不到任一路由器模塊的問題看起來好像您沒有正確設置加載映射和/或類型和/或tsconfig。作爲開始,檢查您的package.json的內容以及您的加載程序(SystemJS/webpack)的配置與英雄版本的巡視。我發現對於升級ng2版本來說,這是最好的方式,因爲文檔很難找到並遵循升級。

    希望這會有所幫助!

    +0

    我已根據您的意見更新,但現在得到不同的一組錯誤,請參閱我的查詢中更新的部分 – Krishnan

    +0

    要使廢棄的路由器正常工作,您需要使用'@ angular/router-deprecated';'導入{ROUTER_PROVIDERS,RouteConfig,ROUTER_DIRECTIVES,RouteParams,ROUTER_BINDINGS}。新的路由器使用完全不同的組件。即不再有'RouteConfig',而是一個完全不同的'RouterConfig'。您需要更改構建路線的格式,即您的[routerLink]。這就是爲什麼我建議首先使用廢棄的路由器對所有其他東西進行排序,然後在知道所有東西都符合RC4時查看更新到新路由器。 –

    +0

    我能夠解決這些路由器和瀏覽器錯誤,但仍然有大約246個錯誤找不到名稱'承諾'和找不到名稱'地圖'。你能幫我解決這些問題嗎? – Krishnan

    5

    除了Ian的建議之外,我還有一個示例應用程序,我剛剛轉換爲RC 4,可能有所幫助。你可以找到它here

    Here是提交相關更改。

    +0

    Cheers DeborahK!該應用程序是我見過的Angular2的最佳示例應用程序。許多例子都試圖成爲所有花裏胡哨的'先鋒',而不僅僅是簡單,好的例子。你的回購是一個很好的資源。 –

    +0

    謝謝!很高興它是有用的。 – DeborahK