Cordova 4.3.0 - 构建命令 returns 错误找不到模块 'Q'
Cordova 4.3.0 - build command returns error Cannot find module 'Q'
将 cordova 更新到版本 4.3.0 后,命令:
cordova build
returns 出现以下错误:
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
但没有任何变化。
有什么帮助吗?
非常感谢
有一个错误,我已经发布了一个补丁:
这是在区分大小写的系统上显示的错误,例如 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";
上面的单行搜索和编辑需要更改的文件。
删除然后重新添加平台也可以:
cordova platform remove ios
cordova platform add ios
现在你可以cordova build ios
:)
正如 MeV 所提到的,这是一个错误。
将 cordova 更新到版本 4.3.0 后,命令:
cordova build
returns 出现以下错误:
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
但没有任何变化。
有什么帮助吗? 非常感谢
有一个错误,我已经发布了一个补丁:
这是在区分大小写的系统上显示的错误,例如 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";
上面的单行搜索和编辑需要更改的文件。
删除然后重新添加平台也可以:
cordova platform remove ios
cordova platform add ios
现在你可以cordova build ios
:)
正如 MeV 所提到的,这是一个错误。