2016-03-19 5 views
1

Недавно я обновил свое приложение от Ember 1.3 до Ember 2.4.2. Однако после развертывания его в моей производственной среде с ember build --env production я заметил пару проблем.Ember JS: define не определен

Первая проблема заключалась в том, что к каждому тегу script/stylesheet прикреплялся атрибут integrity, который не позволял загружать эти ресурсы. После некоторого исследования я решил просто заменить значение, чтобы эти атрибуты были пустыми. Это позволило приложению загружать ресурсы, но затем я заметил ошибку в консоли, которая сообщила define is not defined о файле миниатюрного сайта.js, который создает Ember. Я не могу повторить эту проблему локально, потому что приложение работает нормально. Какие шаги я могу предпринять для изучения этой проблемы? Может ли это быть связано с некоторым дополнением, которое я установил, или, возможно, атрибутом целостности SRI, который я удалил?

Редактировать: Я просто попытался создать и использовать приложение для ванили с Ember (например, ember new testApp and ember build --env production и столкнулся с той же проблемой. Есть ли проблема с Ember, о которой я не знаю? Я не думаю, что это мой сервер, так как я «м способно вынести простой index.html просто отлично.

+0

Привет, в Ember.js многое изменилось с версии 1.3 до 2.4. Есть ли у вас публичный репортаж github о вашем проекте? Если вы хотите больше узнать о новом распознавателе, я просто экспериментировал с ним здесь: https://github.com/zoltan-nz/ember-resolver-experiment, и здесь вы можете найти подробный учебник об использовании ember v2 .4 и ember-cli: http://yoember.com – Zoltan

+0

Это всего лишь небольшой веб-сайт, на котором я размещаю свой малиновый pi, он находится на github.com/uioporqwerty/website. Это совсем не сложно. Всего несколько просмотров и компонентов. – uioporqwerty

ответ

2

Я использую почти последний Node.js (v5.8) и последнюю НПЙ. Вы можете обновить НПЙ npm install -g npm. The best way to install node.js

Я думаю, у вас есть последний ember-cli. Вы можете обновить его, если находитесь вне своего проекта:

$ cd ~ 
$ npm install -g ember-cli 

Я просто клонировал ваш репозиторий.

$ git clone https://github.com/uioporqwerty/website.git 
$ cd website 
$ npm install && bower install 
$ ember server 

Получили следующее сообщение об ошибке:

➜ website git:(master) ember s 
version: 2.4.2 
The Broccoli Plugin: [ConfigLoader] failed with: 
Error: Attempting to watch missing directory: config 
    at EventEmitter.Watcher_addWatchDir [as addWatchDir] (/Users/szines/projects/temp/website/node_modules/broccoli-sane-watcher/index.js:90:11) 
    at /Users/szines/projects/temp/website/node_modules/ember-cli-broccoli/lib/builder.js:95:35 
    ... 

Из-за нескольких важных файлов отсутствует в вашей Ember-кли проекта, я просто запустить ember init

$ ember init 

В ходе этого процесса вас см. вопрос. Вы можете проверить предложенные изменения с помощью 'd', но он просто удалит bootstrap и font-awesome, и это нормально, потому что мы переустановим их с помощью ember install.

[?] Overwrite bower.json? (Yndh) Y 

Теперь мы удаляем все предыдущие пакеты bower и npm, временную папку и папку dist.

$ rm -rf bower_components node_modules tmp dist 
$ npm install && bower install 

Установите ember-bootstrap и ember-font-awesome:

$ ember install ember-bootstrap 
$ ember install ember-font-awesome 

Запуск сервера:

$ ember server 

Ваше приложение работает как шарм. Откройте localhost: 4200 в своем браузере.

Вы можете построить производство:

$ ember build --prod 

И все файлы будут находиться в папке /dist.

Или запустить серийную версию с сервера:

$ ember server --prod 

Наслаждайтесь новым Ember! :)

+1

Хорошая работа там! –

1

Ответ Золтана был очень полезен в том, чтобы быть частью решения моей проблемы. После исправления моего локального сайта в соответствии с ответом Золтана я заметил некоторые проблемы.

Во-первых, была следующая ошибка с Эмбер-Cli 2.4.2:

Could not find module ember-data/-private\system\references\record imported from ember-data/-private/system/references

Эта проблема была решена в главной ветви репо Github для Ember-кли, но это не имеет пробился к репиту npm. Итак, что я сделал, это удалить ember-cli с помощью npm remove -g ember-cli, а затем следовать инструкциям по разработке github repo https://github.com/ember-cli/ember-cli. Это исправило эту проблему.

Кроме того, я заметил, что мой сервер nginx не обслуживал файлы js и css; Я протестировал это, создав index.html с test.css и test.js и заметил, что сервер не выходил из этих файлов. Вместо того, чтобы пытаться найти проблему, я заметил, что мой nginx был немного устаревшим в моем RPI, это было в версии 1.6.x, поэтому я подумал, что это будет подходящее время для его обновления; Я обновил его до 1.9.7, сначала удалив старую версию, затем запустив этот скрипт https://gist.github.com/MattWilcox/402e2e8aa2e1c132ee24. После этого у меня был nginx 1.9.7, но у меня как-то был установлен apache2, который вызвал собственные головные боли при распознавании веб-сайта по умолчанию, поэтому я удалил его.

Наконец, поскольку мои настройки были переопределены, я восстановил/etc/nginx из резервной копии rsync, которую у меня есть, только копируя этот каталог.

Тогда бум, все сработало. Это заняло некоторое время, но все, кажется, отлично работает на https://www.uioporqwerty.com, и в отчете лаборатории qualsys также работает https://www.ssllabs.com/ssltest/analyze.html?d=www.uioporqwerty.com, поэтому все мои настройки переносились правильно :)

Рад, что Ember-Cli работает правильно.

Смежные вопросы