2015-12-13 64 views
0

我正在嘗試編寫一個簡單的Angular2(使用Alpha 47)應用程序,我試圖從jspm安裝「npm guid」。它安裝得很好,但是當我嘗試運行應用程序時,我總是得到「GET http://localhost:3001/jspm_packages/npm/[email protected] 404(Not Found)」。我也嘗試加載其他軟件包,他們也想出了404.否則我的angular2應用程序工作正常。我不知道我做錯了什麼。任何幫助將非常感激!謝謝!Angular2 System.js無法找到jspm包

System.js配置文件

System.config({ 
    baseURL: "/", 
    transpiler: "none", 
    paths: { 
    "npm:*": "jspm_packages/npm/*", 
    "github:*": "jspm_packages/github/*" 
    }, 

    packages: { 
    "app": { 
     "defaultExtension": "js" 
    } 
    }, 

    map: { 
    "guid": "npm:[email protected]" 
    } 
}); 

的index.html

<html> 
<head> 
    <title>Office Contacts</title> 
    <link rel="stylesheet" href="app/styles/foundation.css"> 
    <script src="jspm_packages/system.src.js"></script> 
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script> 
    <script src="node_modules/angular2/bundles/router.dev.js"></script> 
    <script src="node_modules/angular2/bundles/http.dev.js"></script> 
    <script src="config.js"></script> 
    <base href="/"> 
    <script> 
     System.import('app/release/bootstrap'); 
    </script> 

    <script src="node_modules/es6-shim/es6-shim.js"></script> 
</head> 
<body> 
<app>Loading...</app> 
</body> 
</html> 

我bootstrap.ts文件

// 
// ANGULAR PROVIDERS 
// 
import {bootstrap, provide, FORM_PROVIDERS} from 'angular2/angular2'; 
import {ROUTER_PROVIDERS, HashLocationStrategy, LocationStrategy} from 'angular2/router'; 
import {HTTP_PROVIDERS} from 'angular2/http'; 
import {ContactsService} from './contacts.service'; 
import {guid} from 'guid'; 

// 
// APP COMPONENT 
// Top level component that holds all of our components 
// 
import {App} from './app'; 


// 
// BOOTSTRAP 
// Bootstrap our app with the top level component and 
// inject services and providers 
// 
bootstrap(App, [ 
    FORM_PROVIDERS, 
    ROUTER_PROVIDERS, 
    HTTP_PROVIDERS, 
    ContactsService, 
    guid, 
    provide(LocationStrategy, {useClass: HashLocationStrategy}) 
]); 

回答

0

我看你只加了"defaultExtension": "js"app

的東西是錯誤的擴展,你試圖將鏈接複製到瀏覽器http://localhost:3001/jspm_packages/npm/[email protected],然後添加.js,看是否能將其裝入。

試試這個

System.config({ 
    map: { npm: 'jspm_packages/npm/' }, 
    packages: { 
    npm: { defaultExtension: 'js' }, 
    'app': {defaultExtension: 'js'} 
    } 
}); 
+0

我會給它一個鏡頭,並回來與你:-)謝謝! – cpeele00

0

是否使用阿爾法53?如果是這樣的話: 他們擺脫了'angular2/angular2'。您必須使用'angular2/bootstrap','angular2/core'導入。

我實際上有一個潛在的類似問題,其中'angular2/bootstrap'沒有正確導入到SystemJS中。

https://github.com/angular/angular/blob/master/CHANGELOG.md

+0

感謝您迴應!我有很多Alpha53的問題,我決定去Alpha 47.一切都很好,直到我需要加載外部依賴: -/ – cpeele00

+1

我有一個'幾乎'工作的啓動alpha53。隨意嘗試使用它。 https://github.com/jyana/Angular2-TypeScript 唯一的問題是,我在導入{bootstrap}時直接導入。你會在我的app.ts文件中看到。如果你這樣做,它確實有效。 SystemJS似乎有一些問題。試圖自己解決這個問題。 –

+0

約旦,感謝您的迴應,我會檢查你的代碼爲alpha 53. :-)但我現在真正想要的是如何讓system.js找到加載的jspm包: - /再次感謝雖然! – cpeele00