为什么在Windows上使用npm在子目录中无法调用Cordova

时间:2018-08-28 05:43:02

标签: node.js cordova npm quasar-framework

是调用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 :(得分:0)

为什么,我不确定。但是,即使安装了所有内容,这对Quasar项目根目录也有效:

  1. 删除Cordova文件夹
    $ rm -rf src-cordova
  2. 重新安装模式/ Cordova,甚至在尝试运行它时也可以使用。
    $ quasar dev -m cordova -t ios -T browser
  3. 此后,Quasar看到已安装了平台(例如,上面的browser),尽管Cordova没有安装,所以它一直尝试为开发人员下载该平台,并且构建会失败。因此,只需:
    $ cd src-cordova && cordova add platform browser

这可能是由于Quasar安装在我的系统中移动引起的,或者我认为升级出现了问题。无论如何,它都破坏了Vue.nextTick,但仍然可以构建,依此类推。任何在这里有更确切想法的人都会得到我的投票和/或选中标记。