cordova is not a valid task

总结原因:node或npm、ionic版本不匹配。解决方法:node降级 或 ionic 升级。
总结结论:node版本低于@6.0.0会导致淘宝镜像出问题,太高会导致与 ionic 不匹配。
可以 ionic build Android 和 cordova build Android 分开写。
最简单的方法:升级ionic。

问题如下

G:\Work\AMC>ionic cordova build android
no original function chain to wrap
  _             _
 (_)           (_)
  _  ___  _ __  _  ___
 | |/ _ \| '_ \| |/ __|
 | | (_) | | | | | (__
 |_|\___/|_| |_|_|\___|  CLI v1.3.2

Usage: ionic task args

=======================

cordova is not a valid task

Available tasks: (use --help or -h for more info)

   info  ...........  List information about the users runtime environment
   help  ...........  Provides help for a certain command
   start  ..........  Starts a new Ionic project in the specified PATH
   serve  ..........  Start a local development server for app dev/testing
   platform  .......  Add platform target for building an Ionic app
   run  ............  Run an Ionic project on a connected device
   emulate  ........  Emulate an Ionic project on a simulator or emulator
   build  ..........  Locally build an Ionic project for a given platform
   plugin  .........  Add a Cordova plugin
   resources  ......  Automatically create icon and splash screen resources (beta)
   package  ........  Package an app using the Ionic Build service (beta)
   upload  .........  Upload an app to your Ionic account
   lib  ............  Gets Ionic library version or updates the Ionic library
   setup  ..........  Configure the project with a build tool (beta)
   browser  ........  Add another broswer for a platform (beta)
   service  ........  Add an Ionic service package and install any required plugins
   add  ............  Add a bower component to the project
   remove  .........  Remove a bower component from the project
   list  ...........  List bower components from the project

解决方法尝试:1

You need to add Add the platforms that you want to target your app. We will add the 'ios' and 'android' platform.

cordova platform add --save android

结果显示

Using cordova-fetch for cordova-android@^6.1.2
(node:3276) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): CordovaError: Platform android already added.
(node:3276) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

分别依次执行下面两行命令

cordova platform remove android
cordova platform add android@6.1.2
————操作有效

最终没有解决我的问题


解决方法尝试:2

删除platform文件夹
无效

塞一段题外话:
卸载ionic 和 cordova

卸载方法:执行下面三个语句
npm uninstall -g ionic
npm uninstall -g cordova
npm cache clean

这里有个坑是不要用cnpm卸载, 一定要用npm! cnpm卸载无效!
再重新安装ionic和cordova .


解决方法尝试:3

删除node_modules文件夹
删除方法:cmd下:

npm install rimraf -g
然后进入你的node_modules的上级目录:
rimraf node_modules

解决方法尝试:4

重装node

安装详细步骤
这一步可以完全默认安装下去
说明:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西。
这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。
配置环境变量详细过程
配置缓存和安装路径
在安装的文件夹【D:\Nodejs】下创建两个文件夹【node_global】及【node_cache】

创建文件夹

创建完两个空文件夹之后,打开cmd命令窗口执行

npm config set prefix "D:\Nodejs\node_global"
npm config set cache "D:\Nodejs\node_cache"

设置环境变量
“我的电脑”-右键-“属性”-“高级系统设置”-“高级”-“环境变量”,进入环境变量对话框
在【系统变量】下新建【NODE_PATH】
输入【D:\nodejs\node_global\node_modules】
将【用户变量】下的【Path】修改为【D:\nodejs\node_global】
安装完成

重装ionic

重装 cordova : npm install -g cordova
重装 ionic : npm install -g ionic@版本号
报错,截取一部分报错信息如下:

C:\Users\Administrator>npm install -g ionic@1.x
D:\Nodejs\node_global\ionic -> D:\Nodejs\node_global\node_modules\ionic\bin\ionic

> node-sass@3.8.0 install D:\Nodejs\node_global\node_modules\ionic\node_modules\
ionic-app-lib\node_modules\node-sass
> node scripts/install.js

Cannot download "https://github.com/sass/node-sass/releases/download/v3.8.0/win3
2-x64-57_binding.node":

HTTP error 404 Not Found

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g.

      export HTTP_PROXY=http://example.com:1234

or configure npm proxy via

      npm config set proxy http://example.com:8080

gyp verb could not find "python". guessing location
gyp verb ensuring that file exists: C:\Python27\python.exe
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT
HON env variable.
gyp ERR! stack     at failNoPython (D:\Nodejs\node_global\node_modules\ionic\nod
e_modules\ionic-app-lib\node_modules\node-sass\node_modules\node-gyp\lib\configu
re.js:401:14)
gyp ERR! stack     at D:\Nodejs\node_global\node_modules\ionic\node_modules\ioni
c-app-lib\node_modules\node-sass\node_modules\node-gyp\lib\configure.js:356:11
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:152:21)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "D:\\Nodejs\\node.exe" "D:\\Nodejs\\node_global\\node_modules\\
ionic\\node_modules\\ionic-app-lib\\node_modules\\node-sass\\node_modules\\node-
gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=
" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd D:\Nodejs\node_global\node_modules\ionic\node_modules\ionic-app-lib
\node_modules\node-sass
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
Build failed

此处的问题:node-sass网址失效,下载不了,卡住了
解决方法:
使用淘宝镜像安装 ionic

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g ionic@版本号

总结原因:node版本号太高。


解决方法尝试:5

管理员权限打开命令行

ionic cordova build android  ----  依旧失败
cordova build android  ---- 成功
ionic build android ---- 失败

错误信息:


Error: Cannot find module 'internal/util/types'
    at Function.Module._resolveFilename (module.js:536:15)
    at Function.Module._load (module.js:466:25)
    at Module.require (module.js:579:17)
    at require (internal/module.js:11:18)
    at evalmachine.<anonymous>:31:26
    at Object.<anonymous> (D:\Nodejs\node_global\node_modules\ionic\node_modules
\ionic-app-lib\node_modules\vinyl-fs\node_modules\graceful-fs\fs.js:11:1)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)

Cannot find module 'internal/util/types' (CLI v1.7.16)

Your system information:

Cordova CLI: 8.0.0
Ionic Framework Version: 1.3.4
Ionic CLI Version: 1.7.16
Ionic App Lib Version: 0.7.3
OS: Windows 7 SP1
Node Version: v8.9.1

总结:cordova 没问题,问题出在 ionic 上


解决方法尝试:6

测试:ionic高版本

1.卸载ionic:npm uninstall -g ionic(这里用cnpm卸载是不行的)
2.验证是否卸载成功:ionic -v
3.安装ionic指定版本:npm install -g --save --save-exact ionic@3.9.2
4.验证是否安装成功:ionic -v

索性升级到最新版 ionic@4.1.2
运行结果:

> ionic-v1 build
[21:12:49] Invoking sass gulp task.
Error in plugin 'sass'
Message:
    scss\ionic.app.scss
Error: File to import not found or unreadable: www/lib/ionic/scss/ionic.
        on line 22 of scss/ionic.app.scss
>> @import "www/lib/ionic/scss/ionic";
   ^

> cordova build android
......
BUILD SUCCESSFUL

有点小问题,不影响打包apk


解决方法尝试:7

重复第四种方法,安装 node.js@4.4.4,安装淘宝镜像 cnpm@6.0.0 失败,安装 cnpm@3成功。
切成node.js@5.6.0呢,安装淘宝镜像 cnpm 成功,但是cnpm install -g ionic 失败。
安装 node.js@6.11.1,安装 cnpm 成功,安装 ionic 成功。
ionic cordova build Android ---- 失败
cordova build android ---- 打包执行成功

ionic build android
节选信息如下:

G:\Work\GateWay>ionic build android
 ✗ (node:6260) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
Running command: D:\Nodejs\node.exe G:\Work\GateWay\hooks\after_prepare\010_add_platform_class.js G:\Work\GateWay
add to body class: platform-android
ANDROID_HOME=D:\Android\SDK
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_131
Subproject Path: CordovaLib
Observed package id 'extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2' in inconsistent location 'D:\Android\SDK\android-sdk-windows\extras\m2repository\com\android\support\constraint\constraint-la
yout-solver\1.0.2' (Expected 'D:\Android\SDK\extras\m2repository\com\android\support\constraint\constraint-layout-solver\1.0.2')
Observed package id 'extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2' in inconsistent location 'D:\Android\SDK\android-sdk-windows\extras\m2repository\com\android\support\constraint\constraint-layout\1.
0.2' (Expected 'D:\Android\SDK\extras\m2repository\com\android\support\constraint\constraint-layout\1.0.2')
Observed package id 'build-tools;26.0.0-rc2' in inconsistent location 'D:\Android\SDK\build-tools\26.0.0-preview' (Expected 'D:\Android\SDK\build-tools\26.0.0-rc2')
Incremental java compilation is an incubating feature.
.......
BUILD SUCCESSFUL

node@6 环境都会报这个警告,没有太大影响,提示好像是建议升级一下graceful-fs

 ✗ (node:6260) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.

解决方法尝试: npm upgrade -g npm —....— 没有解决问题
解决方法尝试:cnpm install -g graceful-fs@4.1.4 进行全局升级。 —....— 没有解决问题
另一种解决方式:node 降级。
不解决也影响不大。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容