【问题标题】:Cordova 4.3.0 - build command returns error Cannot find module 'Q'Cordova 4.3.0 - 构建命令返回错误找不到模块'Q'
【发布时间】:2015-05-08 00:17:49
【问题描述】:

将 cordova 更新到 4.3.0 版本后,命令:

cordova build

返回以下错误:

    module.js:340
    throw err;
          ^
Error: Cannot find module 'Q'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Volumes/CaseSensitive/ios_projects/_Tests/testGruntCordova/testGruntCordova/platforms/ios/cordova/lib/check_reqs.js:25:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
ERROR building one of the platforms: Error: /Volumes/CaseSensitive/ios_projects/_Tests/testGruntCordova/testGruntCordova/platforms/ios/cordova/build: Command failed with exit code 8
You may not have the required environment or OS to build this project
Error: /Volumes/CaseSensitive/ios_projects/_Tests/testGruntCordova/testGruntCordova/platforms/ios/cordova/build: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:753:16)
    at Process.ChildProcess._handle.onexit (child_process.js:820:5)

我已经尝试删除和添加平台 ios 但没有任何变化。

我尝试过运行:

sudo npm install -g cordova / sudo npm install cordova
sudo npm install -g Q / sudo npm install Q

但没有任何变化。

有什么帮助吗? 非常感谢

【问题讨论】:

    标签: xcode cordova npm node-modules cordova-cli


    【解决方案1】:

    有一个错误,我已经发布了一个补丁:

    Apache Cordova ios - Git Repository

    【讨论】:

      【解决方案2】:

      这是在区分大小写的系统上显示的错误,例如 Unix、Linux 和某些 OS X(如果设置为区分大小写)。

      到目前为止,要修复它,您必须找到包含这样一行的文件:

       Q = require('Q')
      

      您可以使用 grep 站在项目目录中定位文件:

      grep -HnrI "require('Q" *;
      

      然后,使用任何文本编辑器手动将提到的行更改为:

      Q = require('q')
      

      或者,您可以通过在项目目录上运行以下命令以更直接的方式编辑相关文件:

      grep -rl "require('Q" * | xargs sed -i "" "s/'Q'/'q'/g";
      

      上面的单行搜索和编辑需要更改的文件。

      【讨论】:

        【解决方案3】:

        删除然后重新添加平台也可以:

        cordova platform remove ios
        cordova platform add ios
        

        现在你可以cordova build ios :)

        正如 MeV 所说,这是一个错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-16
          • 1970-01-01
          • 2014-08-01
          • 1970-01-01
          • 2015-06-09
          相关资源
          最近更新 更多