Angular2 System.js не может найти пакеты jspm

Я пытаюсь написать простое приложение Angular2 (используя Alpha 47) и пытаюсь установить «npm guid» из jspm. Он устанавливается нормально, но когда я пытаюсь запустить приложение, я всегда получаю «GET http://localhost:3001/jspm_packages/npm/[email protected] 404 (не найдено)". Я также пытался загрузить другие пакеты, и они также получили 404. В противном случае мое приложение angular2 работает нормально. Я не уверен, что я делаю неправильно. Любая помощь могла бы быть полезна! Спасибо!

Файл конфигурации 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})
]);

person cpeele00    schedule 13.12.2015    source источник


Ответы (2)


Я вижу, вы добавили только "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'}
  }
});
person Murhaf Sousli    schedule 14.12.2015
comment
Я попробую и вернусь к вам :-) спасибо! - person cpeele00; 17.12.2015

Вы используете Альфу 53? Если да: они избавились от angular2/angular2. Теперь вам нужно импортировать, используя «angular2/bootstrap», «angular2/core».

На самом деле у меня потенциально похожая проблема, когда «angular2/bootstrap» неправильно импортирует в SystemJS.

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

person jordan.yana    schedule 13.12.2015
comment
Спасибо за ответ! У меня было так много проблем с Alpha53, что я решил перейти на Alpha 47. Все было хорошо, пока мне не понадобилось загружать внешние зависимости :-/ - person cpeele00; 13.12.2015
comment
У меня есть "почти" рабочий стартер для альфы53. Не стесняйтесь попробовать и использовать это. github.com/jyana/Angular2-TypeScript Единственная проблема заключается в том, что я импортирую напрямую, когда Я импортирую {bootstrap} . Вы увидите это в моем файле app.ts. Это действительно работает, если вы делаете это таким образом. Кажется, есть какая-то проблема с SystemJS. Пытаюсь понять это до сих пор сам. - person jordan.yana; 13.12.2015
comment
Джордан, спасибо за ответ, и я проверю ваш код для альфы 53. :-) Но сейчас я действительно ищу, как заставить system.js найти загруженные пакеты jspm :-/ Еще раз спасибо, хотя ! - person cpeele00; 14.12.2015