Cordova after_prepare hook在Android中成功但在iOS中失败

Rya*_*P13 5 android build node.js ios cordova

我为Cordova构建编写了一个after_prepare钩子,它从最终构建中删除了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!")
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

当我cordova prepare android -d在CLI中运行时,这对我有用,但在切换到iOS时,它失败并出现以下错误:

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

我试过只引用ios平台文件夹,它发出相同的错误消息.

小智 3

您需要使用 NotePad++ 等文本编辑器

在 NotePad++ 上,您将按照以下步骤操作:

  • 打开给您带来问题的文件
  • 转到“查找”选项并选择“替换”选项卡
  • 您应该找到这个字符串:'\r\n'
  • 替换为\n
  • 确保选择“环绕”选项。
  • 在搜索模式下,选择“扩展”,然后继续全部替换。

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