离子3督促建立与版本号
建设项目离子当桌面离子3督促建立与版本号
离子科尔多瓦构建浏览器--prod
这会导致下面的文件生成
我用下面的命令编译/ main.js
但是我希望能够在生成过程中自动添加版本号到生成的文件中。所以,最终会像
编译/ main.js?版本= 1.00
,以避免需要每督促建立后,清除浏览器缓存。
有没有这个标志,还是我必须手动做的事情?
任何建议将是伟大的!
编辑:
我的解决办法是在GitHub上的人有兴趣!
https://github.com/RichardM99/ionic-3-version-build-file-hook
下面是一些建议 - 你可以创建一个科尔多瓦钩。
挂钩是您希望在构建过程的不同阶段执行的脚本。在你的情况下,你正在查看一个脚本,它在构建事件结束后重命名main.js文件,或者换句话说就是'after_build'类型的钩子。
该脚本通常是一个Node.js文件,但您也可以执行其他类型的脚本。
还有一件事。既然你想绕过缓存,你不会重命名文件本身。你想要做的是将你的“index.html”中对“main.js”的引用替换为包含一个随机或者你的实际版本号。
我指出你在一个方向,但不会勺羹。查找关于cordova钩子的文档。他们是超级简单,如果你理解JavaScript /节点
这样的事情应该完成这项工作:
var index_orig = fs.readFileSync(path-to-index.html, 'utf8');
var index_new = index_orig.replace("main.js", "main.js?version="+version_num);
fs.writeFileSync(path-to-index.html, index_new, 'utf8');
如果你想实际的版本号,您可以读取config.xml和解析它来获得这是价值。
希望它有帮助。
我写blog很久以前
在我的构建流水线我有命令集版本
version "$(app.versionPrefix)$(Build.BuildNumber)"
$(app.versionPrefix) - 是一个前缀版本如0.1。
$(Build.BuildNumber) - 是建立版本
然后,我有环境文件
export const environment = {
apiUrl: 'https://....',
production: true,
version: '0.0.57'
}
那么我js脚本来更新环境和config.xml中
var replace = require('replace-in-file');
var package = require("./package.json");
var buildVersion = package.version;
const options = {
files: ['config.xml'],
from: /" version="([0-9]*.[0-9]*.[0-9]*)"/g,
to: "\" version=\""+ buildVersion + "\"",
allowEmptyPaths: false,
};
const optionsEnv = {
files: ['src/environments/environment.prod.ts'],
from: /version: '(.*)'/g,
to: "version: '"+ buildVersion + "' ",
allowEmptyPaths: false,
};
try {
let changedFiles = replace.sync(options);
if (changedFiles == 0) {
throw "Please make sure that file '" + options.files + "' has \"version: ''\"";
}
changedFiles = replace.sync(optionsEnv);
if (changedFiles == 0) {
throw "Please make sure that file '" + optionsEnv.files + "' has \"version: ''\"";
}
console.log('Build version set: "' + options.to + '"');
}
catch (error) {
console.error('Error occurred:', error);
throw error
}
版本
注意:您需要安装插件替换文件中
然后在建管线我运行此脚本
node ./replace.build.js
在你的情况,如果你只需要浏览器,你可以调整脚本。
非常感谢您的先生。 – user2085143