Почему Cordova нельзя вызывать в подкаталоге с помощью npm в Windows - PullRequest
0 голосов
/ 28 августа 2018

Я звоню quasar dev -m cordova -t ios -T browser (который вызывает Cordova в подкаталоге в конце) или пробует скрипт npm, например:

"scripts": {
    "build": "quasar build -m cordova -t ios -T browser",
    "postbuild": "cd src-cordova && cordova run browser"
}

Я получаю следующую ошибку. (cd src-cordova && cordova run browser работает, если вы делаете это в Git Bash, но не из сценария npm.)

(node:9964) UnhandledPromiseRejectionWarning: CordovaError: No platforms added to
this project. Please use `cordova platform add <platform>`.
    at Object.preProcessOptions (C:\....\cordova-lib\src\cordova\util.js:312:15)
    at C:\....\cordova-lib\src\cordova\run.js:30:32
    at _fulfilled (C:\....\cordova-lib\node_modules\q\q.js:787:54)
    at self.promiseDispatch.done (C:\....\cordova-lib\node_modules\q\q.js:816:30)
    at Promise.promise.promiseDispatch (C:\....\cordova-lib\node_modules\q\q.js:749:13)
    at C:\....\cordova-lib\node_modules\q\q.js:810:14
    at flush (C:\....\cordova-lib\node_modules\q\q.js:108:17)
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)
    at Function.Module.runMain (module.js:695:11)
(node:9964) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error
originated either by throwing inside of an async function without a catch block, or by
rejecting a promise which was not handled with .catch(). (rejection id: 1)

Я не могу найти что-либо об этом в Интернете, и это кажется действительно новым, хотя я не знаю ничего, что я изменил в то время. С тех пор я убедился, что полностью переустановил Node и обновил npm, Cordova, Quasar, Vue, git !, все. Все еще эта ошибка.

И, похоже, это не сам Квазар. Если я делаю что-то подобное из каталога выше Quasar, это работает, за исключением ошибки Cordova:

"scripts": {
    "build": "cd quasar-folder && quasar build -m cordova -t ios -T browser"
}

Работает quasar info Сети:

Operating System                Windows_NT(10.0.17134) - win32/x64
NodeJs                          8.11.4

Global packages
  NPM                           6.4.0
  yarn                          Not installed
  quasar-cli                    0.17.13
  vue-cli                       3.0.1
  cordova                       8.0.0

Important local packages
  quasar-cli                    0.17.13 
  quasar-framework              0.17.10 
  quasar-extras                 2.0.6   
  vue                           2.5.17  
  vue-router                    3.0.1   
  vuex                          3.0.1   
  electron                      Not installed
  electron-packager             Not installed
  electron-builder              Not installed
  @babel/core                   7.0.0-beta.54   
  webpack                       4.16.5  
  webpack-dev-server            3.1.5   
  workbox-webpack-plugin        3.4.1   
  register-service-worker       1.4.1   

Так, что вызывает это? Есть ли обходной путь или исправление?

1 Ответ

0 голосов
/ 29 августа 2018

Почему, я не уверен. Но это то, что у меня сработало, хотя все было установлено из корня проекта Quasar:

  1. Удалить папку Cordova
    $ rm -rf src-cordova
  2. Переустановите режим / Cordova, который должен даже работать при попытке его запустить.
    $ quasar dev -m cordova -t ios -T browser
  3. После этого Квазар увидел платформу (например, browser, выше) как установленную, а Кордова - нет, и поэтому продолжала пытаться загрузить ее для dev, и сборка не удалась. Итак, просто:
    $ cd src-cordova && cordova add platform browser

Возможно, это было вызвано перемещением установки Quasar вокруг моей системы, или я полагаю, что-то пошло не так при обновлении. Несмотря на это, он сломал Vue.nextTick, но все равно будет строить и так далее. Любой, у кого есть более точные идеи, получит мой голос и / или галочку.

...