Cordova Apache错误的模块路径

时间:2015-11-25 21:31:55

标签: node.js cordova command-line-interface apache-cordova

我的问题

我正在学习使用cordova apache制作一个混合应用程序(之前的Phonegap?)我正在按照他们推荐我们网站的步骤进行操作:

https://cordova.apache.org/docs/en/latest/guide/cli/index.html

我成功安装了nodeJS(如果我执行命令节点--version,它将返回其版本)

但是当我尝试安装cordova时,一切似乎都有效,但不是CLI。

所以:我猜CLI的配置不正确,但我不确定。有人可以帮我吗?

说明:

  • 用于安装cordova的命令(全局):

    npm install -g cordova
    
  • 用于检查是否已正确安装并可从命令行访问的命令(具有给定错误):

    cordova --version
    module.js:340
        throw err;
        ^
    
    Error: Cannot find module 'c:\Program Files\nodejs\node_modules\cordova\bin\cordova'
        at Function.Module._resolveFilename (module.js:338:15)
        at Function.Module._load (module.js:289:25)
        at Function.Module.runMain (module.js:457:10)
        at startup (node.js:138:18)
        at node.js:974:3
    
  • 我发现错误中的路径不存在:

    c:\Program Files\nodejs\node_modules\cordova\bin\cordova
    
  • 正确的路径必须是:

    C:\Users\Username\AppData\Roaming\npm\node_modules\cordova\bin\cordova
    
  • 我在全球系统环境中配置了此路径:

    C:\Users\Username\AppData\Roaming\npm
    
  • 我注意到这个文件(需要从CLI调用)

    #!/bin/sh
    basedir=`dirname "$0"`
    
    case `uname` in
        *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
    esac
    
    if [ -x "$basedir/node" ]; then
      "$basedir/node"  "$basedir/node_modules/cordova/bin/cordova" "$@"
      ret=$?
    else 
      node  "$basedir/node_modules/cordova/bin/cordova" "$@"
      ret=$?
    fi
    exit $ret
    
  • 我正在使用Windows 8

2 个答案:

答案 0 :(得分:1)

我最近遇到了同样的问题。通过执行以下操作解决了这个问题:

npm -g install npm

npm install -g cordova

问题是与最新稳定版本的节点捆绑在一起的npm版本不支持某些软件包。

答案 1 :(得分:0)

在项目的根文件夹内的Windows中,我找到了两个文件cordova.cmd。删除这两个文件