2015-08-14 4 views
1

Я стараюсь использовать Ember 2.0 и имеют следующие файлы config.jsКак загрузить Emberjs 2.0 с JSPM и systemjs

System.config({ 
    "baseURL": "/static/js", 
    "transpiler": "traceur", 
    "paths": { 
    "*": "*.js", 
    "github:*": "jspm_packages/github/*.js" 
    } 
}); 

System.config({ 
    "map": { 
    "ember": "github:components/[email protected]", 
    "traceur": "github:jmcriffey/[email protected]", 
    "traceur-runtime": "github:jmcriffey/[email protected]", 
    "github:components/[email protected]": { 
     "jquery": "github:components/[email protected]", 
     "handlebars": "github:components/[email protected]" 
    } 
    } 
}); 

app.js

import Ember from "ember"; 
let App = Ember.Application.create({ 
    LOG_TRANSITIONS: true, 
    LOG_TRANSITIONS_INTERNAL: true, 
}); 

и index.html

<script src="{% static "js/jspm_packages/system.js" %}"></script> 
<script src="{% static "js/config.js" %}"></script> 
<script> 
    System.import('app'); 
</script> 

aftre load i have next error

Uncaught (in promise) Error: Cannot read property 'Ember' of undefined 
    Error loading http://localhost:9090/static/js/app.js 
    at http://localhost:9090/static/js/jspm_packages/github/components/[email protected]/ember.js!transpiled:16:38 
    at http://localhost:9090/static/js/jspm_packages/github/components/[email protected]/ember.js!transpiled:97:11 
    at execute (http://localhost:9090/static/js/jspm_packages/github/components/[email protected]/ember.js!transpiled:25603:9) 
    at m (http://localhost:9090/static/js/jspm_packages/system.js:4:20821) 
    at m (http://localhost:9090/static/js/jspm_packages/system.js:4:20756) 
    at m (http://localhost:9090/static/js/jspm_packages/system.js:4:20756) 
    at Object.Promise.all.then.execute (http://localhost:9090/static/js/jspm_packages/system.js:4:23421) 
    at b (http://localhost:9090/static/js/jspm_packages/system.js:4:7874) 
    at S (http://localhost:9090/static/js/jspm_packages/system.js:4:8253) 
    at p (http://localhost:9090/static/js/jspm_packages/system.js:4:6131) 

если скрипты загрузки без системных и jspm всегда работают. но хочу использовать jspm и systemjs :) Прежде чем использовать ember 1.13 и с конфигурацией. Я думаю, проблема с конфигурацией jquery

ответ

1

Похоже, что пакет для Ember не всегда совместим с jspm. Я всегда использую следующее переопределение в моем package.json:

"jspm": { 
    "overrides": { 
     "github:components/[email protected]": { 
     "main": "ember.debug", 
     "files": [ 
     "ember.prod.js", 
     "ember.debug.js" 
     ], 
     "dependencies": { 
     "jquery": "github:components/[email protected]^2.1.3" 
     }, 
     "shim": { 
     "ember.prod": { 
      "deps": [ 
      "jquery" 
      ], 
      "exports": "Ember" 
     }, 
     "ember.debug": { 
      "deps": [ 
      "jquery" 
      ], 
      "exports": "Ember" 
     } 
     } 
    } 
    } 
} 

Это диктует JSPM устанавливать только версию Prod и отладочный Эмбер и описывает всю зависимость и экспорт правильно. Если вы его используете, вам нужно снова запустить jspm install после того, как вы добавили его в свой пакет package.json.

У вас может возникнуть другая проблема с шаблонами htmlbars. У меня есть плагин, чтобы решить, что: https://github.com/n-fuse/plugin-ember-hbs:

jspm install hbs=github:n-fuse/[email protected]

должна позволять импортировать HBS шаблоны без необходимости добавить компилятор в зависимости.

См. Также проект стартера, который я создал: https://github.com/OrKoN/jspm-ember-playground

+0

Вы правы, работали! Большое спасибо! –