Cordova after_prepare挂钩在Android中成功,但在iOS中失败

我已经为我的Cordova build编写了一个after_prepare钩子,它从最终的构build中删除了node_modules文件夹:

#!/usr/bin/env node /** * The node modules we want to remove from the build prior to building * @type {Array} */ var foldersToRemove = ["platforms/android/assets/www/node_modules", "platforms/ios/www/node_modules"]; var fse = require('fs-extra'); var path = require('path'); var rootdir = process.argv[2]; foldersToRemove.forEach(function(folder) { var rmFolder = path.join(rootdir, folder); fse.remove(rmFolder, function(err) { if (err) { return console.error(err); } else { console.log(rootdir); console.log("fse folder removed success!") } }); }); 

这对我运行cordova prepare android -d在命令行cordova prepare android -d中,但切换到iOS时失败,出现以下错误:

env:node \ r:没有这样的文件或目录Hook失败,错误代码127:

我已经尝试了只是对ios平台文件夹的引用,它发出相同的错误信息。

您需要使用像NotePad ++这样的文本编辑器

在NotePad ++上,您将遵循以下步骤:

  • 打开文件给你的问题
  • 转到“查找”选项并select“replace”选项卡
  • 你应该find这个string:'\ r \ n'
  • 用\ nreplace它
  • 确保select“环绕”选项。
  • 在search模式下,select“扩展”,然后继续全部replace。

  • 保存文件并再次执行iOS构build

在OSX的terminal上试试这个:

 tr -d '\r' < FILE_NAME > FILE_NAME 

尝试在OSX下构build您的Ionic或Cordova应用程序时,可能会导致此错误,这很可能是由于相关文件中的行结尾格式造成的。 尝试这个