Cordova 向项目中添加自定义生成/准备步骤
我有一款针对Android和iOS的ionic应用程序 我想要实现的是,在为两种平台构建/准备代码时,能够指定一个命令行标志,但我不确定如何实现。 我的第一个目标是用另一个资源替换一个资源——在本例中是一个图像——仅用于测试版本(比如用beta图标替换发布图标) 如何做到这一点? 甚至可以使用Cordova 向项目中添加自定义生成/准备步骤,cordova,ionic-framework,ionic3,Cordova,Ionic Framework,Ionic3,我有一款针对Android和iOS的ionic应用程序 我想要实现的是,在为两种平台构建/准备代码时,能够指定一个命令行标志,但我不确定如何实现。 我的第一个目标是用另一个资源替换一个资源——在本例中是一个图像——仅用于测试版本(比如用beta图标替换发布图标) 如何做到这一点? 甚至可以使用离子构建/准备?使用(kudos@sebafereras)我设法使其工作如下: 将钩子添加到ionic.config.json: “挂钩”:{ “build:before”:“/scripts/build
离子构建/准备?使用(kudos@sebafereras)我设法使其工作如下:
将钩子添加到ionic.config.json
:
“挂钩”:{
“build:before”:“/scripts/build before.js”,
“serve:before”:“/scripts/serve before.js”
}
创建要使用的钩子脚本和资源。(例如,爱奥尼亚构建的简单钩子脚本
——为了简单起见,无需检查:
也许你可以使用-特别是ionic:build:before
。例如,我已经用hook做了一些事情,将应用程序版本从config.xml
文件复制到一个服务中……因此,也许你可以用它来构建一些东西来替换资源:/@sebafereras想用你的信息创建一个回复帖子吗?……这样我就可以给你应得的信任值得。很高兴听到我的评论对你有所帮助!但老实说,我给你的信息可能足以发表评论,但绝对不足以给出答案……如果你能给出一个答案,解释你是如何解决问题的,那就太好了,这样我就可以给你应得的积分:)@sebafereras给你。。。让我知道我是否可以在答案的评论中改进它。它看起来很棒!!谢谢
module.exports = function(ctx)
{
// Use console.log(ctx); to print the context to the console when running 'ionic build/serve'
const projectDir = ctx.project.dir;
if(isDevBuild(ctx))
{
useDevelopmentImage(projectDir);
console.log('Using development logo.');
}
else
{
useProductionImage(projectDir);
console.log('Using production logo.');
}
};
function isDevBuild(context)
{
if(context.build.prod)
return false;
return true;
}
function useDevelopmentImage(projectDir)
{
const devLogoPath = projectDir + '/images/dev_logo.png';
// Could also use context.project.src instead of projectDir + '/src...'
const targetPath = projectDir + '/src/assets/imgs/logo.png';
let fs = require('fs');
fs.copyFileSync(devLogoPath, targetPath);
}
function useProductionImage(projectDir)
{
const prodLogoPath = projectDir + '/images/prod_logo.png';
const targetPath = projectDir + '/src/assets/imgs/logo.png';
let fs = require('fs');
fs.copyFileSync(prodLogoPath, targetPath);
}