gpt4 book ai didi

ios - Cordova 将 www 文件夹复制到现有版本

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:30:41 27 4
gpt4 key购买 nike

如果我们只更改了我们的 cordova 项目的 www/ 文件夹中的 Assets ,并且没有更改任何 native 代码/插件,难道不应该有一个脚本只将新的 www/ 文件夹替换为 ios 构建输出中的现有文件夹?

这样我们就不必每次想做一个小改动并在模拟器中重新运行时都使用 cordova build ios 重新构建整个 ios 项目。这将为我们每天节省大量时间。

这样的东西已经存在了吗?

最佳答案

您可以通过三种方式来存档:

  1. 为从您的根 www 文件夹到您的平台 www 文件夹的每个文件或文件夹建立绝对符号链接(symbolic link)。但不要符号链接(symbolic link)整个 www 文件夹,也不要符号链接(symbolic link) cordova.js 文件。

  2. 在 Xcode -> Build Phases 中,您可以将 copy-shell-scripts 放在 Copy www 目录中,用于 www 文件夹中的每个文件或文件夹。它应该看起来像:cp -R/absolute/path/to/your/app/www/index.html/absolute/path/to/your/app/platforms/ios/www/index.html

  3. 你可以使用钩子(Hook)。将以下钩子(Hook)放在 hooks->after_platform_add->create_symlinks.js 和 hooks->after_build->create_symlinks.js 中。每次您添加 android 或 ios 平台或构建应用程序时, Hook 都会运行。

您必须使脚本可执行,也许您需要从 npm 安装 shelljs。

这是我的钩子(Hook),根据你的需要修改它:

#!/usr/bin/env node

var what_to_symlink_from_www = [
"assets",
"index.html"
];

// no need to change below

var path = require("path"),
fs = require("fs"),
shell = require("shelljs"),
rootdir = process.argv[2],
added_platform = process.env.CORDOVA_PLATFORMS,
www = rootdir + "/www/",
android_www = rootdir + "/platforms/android/assets/www/",
ios_www = rootdir + "/platforms/ios/www/",
buildnumber_file = rootdir + "/buildnumber",
buildnumber,
active_platform_www;

shell.echo("\r\nHook start: Symlinking");

if (added_platform === "ios") {
active_platform_www = ios_www;
do_job()
}
else if (added_platform === "android") {
active_platform_www = android_www;
do_job()
}

function do_job() {
what_to_symlink_from_www.forEach(function (item) {
shell.rm("-rf", active_platform_www + item);
shell.ln("-s", www + item, active_platform_www + item);
shell.echo("symlinked: " + item + " to " + active_platform_www);
});
shell.echo("Hook end: Symlinking" + "\r\n");
}

关于ios - Cordova 将 www 文件夹复制到现有版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com