Как развернуть приложение Ember.js, разработанное с помощью ember-cli на страницах github?

Я успешно создал небольшое приложение с использованием ember-cli. Я попробовал нажать его в ветки gh-pages моего github repo, но он показывает ошибку в консоли браузера.

Uncaught ReferenceError: require is not defined 

загрузка файлов vendor.js и vendor.js из dist/assets также не выполняется.

Я не могу запускать автономное приложение ember из папки dist на локальном компьютере, а также те же ошибки.

Кто-нибудь пробовал это. если да, как это сделать правильно?

Ответ 1

С декабря 2014 года есть и ember-cli addon для этого.

Сначала убедитесь, что вы установили modulePrefix в config/environment.js в свое имя репо на github. Например, для https://github.com/username/my-cool-repo оно должно быть modulePrefix: 'my-cool-repo'.

Затем выполните следующие инструкции:

  • Установите аддон.
    $ ember install:addon ember-cli-github-pages

  • Зафиксируйте изменения, внесенные аддоном.
    $ git add . && git commit -m "Installed addon ember-cli-github-pages"

  • Создайте ветвь gh-pages только с необходимыми файлами.
    $ git checkout --orphan gh-pages && rm -rf `ls -a | grep -vE '.gitignore|.git|node_modules|bower_components|\.\/|\.\.\/'` && git add . && git commit -m "Initial gh-pages commit"

  • Вернитесь к ветки источника (скорее всего, master).
    $ git checkout master

  • Создайте свое приложение ember в ветке gh-pages.
    $ ember gh-pages:commit --message "Initial gh-pages release"

  • Нажмите все (или, по крайней мере, ветвь gh-pages) на github.

(Это было другое для ember-cli <= 0.1.4 и может измениться в будущем. Обязательно посетите addon readme.)

Ответ 2

Как уже отмечаются комментарии: измените baseUrl в config/environment.js на имя репозитория GitHub, на который вы нажимаете приложение. Например:

Ваш репозиторий GitHub называется myEmberApplication и находится в

https://github.com/yourUsername/myEmberApplication.git

тогда URL-адрес этого проекта gh-pages будет

https://yourUsername.github.io/myEmberApplication

Итак, в вашем случае вам нужно изменить baseUrl с / (по умолчанию) на /myEmberApplication.

Причина, по которой вам нужно это сделать, заключается в том, что ember-cli добавляет заголовок <base> в ваш файл index.html.