2015-12-03 5 views
7

Редактировать: Это происходит при работе с ионным 2. Я знаю, что он еще не стабилен, но я предполагаю, что для этого может быть какое-то исправление, поскольку, похоже, другие не получают этой проблемы. Редактировать конец(Ionic 2) Произошла ошибка, пытаясь вернуться к выполнению Кордовы-lib: TypeError: Невозможно прочитать свойство 'then' of undefined

По какой-то причине я уже вдруг начал получать эту ошибку при попытке построить свое ионное приложение, с помощью «ионной сборки андроида», а также «ионных сборок ИСНА»:

An Error occurred trying to fall back to Cordova-lib execution: TypeError: Cannot read property 'then' of undefined 
at Object.IonicTask.runCordova (/usr/local/lib/node_modules/ionic/lib/ionic/cordova.js:262:21) 
at /usr/local/lib/node_modules/ionic/lib/ionic/cordova.js:142:19 
at _fulfilled (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:787:54) 
at self.promiseDispatch.done (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:816:30) 
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:749:13) 
at /usr/local/lib/node_modules/ionic/node_modules/q/q.js:557:44 
at flush (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:108:17) 
at doNTCallback0 (node.js:430:9) 
at process._tickCallback (node.js:359:13) 

Error happened [TypeError: Cannot read property 'then' of undefined] 
    TypeError: Cannot read property 'then' of undefined 
at Object.IonicTask.runCordova (/usr/local/lib/node_modules/ionic/lib/ionic/cordova.js:262:21) 
at /usr/local/lib/node_modules/ionic/lib/ionic/cordova.js:142:19 
at _fulfilled (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:787:54) 
at self.promiseDispatch.done (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:816:30) 
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:749:13) 
at /usr/local/lib/node_modules/ionic/node_modules/q/q.js:557:44 
at flush (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:108:17) 
at doNTCallback0 (node.js:430:9) 
at process._tickCallback (node.js:359:13) 

Я потерялся здесь, и понятия не имею, с чего начать искать.

Есть ли кто-нибудь, кто видел это раньше, и может указать мне в правильном направлении?

+0

вы можете поместить фрагмент кода в plunker или переполнению стека в получить представление о том, что вы спрашиваете @larschla –

+0

@Anilkumar Проблема в том, что это не похоже на мой код, который ничего не делает. Я получаю эту ошибку каждый раз, когда я пытаюсь запустить ** ionic build android ** Не имеет значения, какие из моих приложений я делаю. Кажется, что вся ионная строительная вещь сломана. – larschla

+0

Я попытался переустановить ионную и кордову, не повезло. Можно создать как android, так и ios, если я запускаю ионный сборщик android как администратор (sudo). Проблема тогда в том, что выход из сборки должен быть chmod/chown каждый раз, когда я хочу что-то с ними делать. Например. откройте проект ios в xcode. Итак, похоже, что это проблема с разрешением - я просто не знаю, какие файлы/папки мне нужны, чтобы дать правильные предложения. – larschla

ответ

5

У меня была такая же проблема на Ubuntu.

Мне нужно было установить несколько зависимостей.

Во-первых Cordova, с:

npm install -g cordova 

Андроида SDK от http://developer.android.com/sdk/index.html

И Java SDK.

+0

То же самое на windows .. 'npm install -g cordova' сделал трюк для меня –

+0

Я просто получаю 'throw new TypeError (' недопустимые данные ');' сейчас – Rambatino

3

деинсталлировать глобально (использование Sudo при необходимости)

sudo npm uninstall -g ionic 
sudo npm uninstall -g [email protected] 
sudo npm uninstall -g cordova 

исправление разрешений, как это: https://docs.npmjs.com/getting-started/fixing-npm-permissions

это работало для меня:

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share} 

Переустановка (без Судо)

npm install -g ionic 
npm install -g [email protected] 
+0

Спасибо. Я сделал то, что вы здесь говорите, но у меня все еще есть такая же проблема. Такое же сообщение об ошибке:/ – larschla

+0

Мне также пришлось запустить: npm install cordova. Кроме того, у меня была ошибка разрешения, которую я решил с ответом от Ананда: http://stackoverflow.com/questions/33812158/ionic-update-notifier-cordova-json-you-dont-have-access-to-this -file – Dave

6

@mabs @mgcdanny

Я вполне уверен, что я выяснил причину этой проблемы. Я побежал cordova -v и увидел этот выход -

Ross-MBP:test rossmartin$ cordova -v 
/usr/local/lib/node_modules/cordova/node_modules/update-notifier/node_modules/configstore/index.js:53 
       throw err; 
       ^

Error: EACCES: permission denied, open '/Users/rossmartin/.config/configstore/update-notifier-cordova.json' 
You don't have access to this file. 

Я тогда выбежал

Ross-MBP:test rossmartin$ sudo chown -R rossmartin ~/.config 
Ross-MBP:test rossmartin$ cordova -v 
6.0.0 

Теперь я вижу, Кордову отчетности это в 6.0.0 и может сделать ионную сборку/готовить снова.

Я думаю, что произошло то, что Ionic CLI не думал, что CLI был установлен. Возможно, возможно, что где-то Ionic CLI делает cordova -v и повесил трубку с разрешением на чтение файла ~/.config/configstore/update-notifier-cordova.json.

+0

Действительно полезно, что, спасибо! – Rambatino

+0

Та же конфигурация (El Capitan) и была в темноте более 4 часов. Он решил проблему. Спасибо! –

+0

Это было исправление для меня. Благодаря! –

0

Процесс сборки искал Cordova-lib и не мог его найти. Это обычно вызывается, если вы не установили Cordoval-CLI

Чтобы проверить, установлен ли Cordova-CLI, тип $ ionic info Проверьте результат.если вы видите Кордова CLI: Не установлено запустить НПМ установки -g [email protected] $ ionic info> он должен показать Кордова CLI: 4.2.0