gpt4 book ai didi

typescript - 有没有办法在项目类中获取构建和版本号

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:14 24 4
gpt4 key购买 nike

我有一个使用 algular-cli 创建和维护的项目。我想在版本号的项目类中有一个可访问的值(可能来自 package.json)和递增的内部版本号(每次我做 ng build 或每次 ng serve 做到了)。我怎样才能做到这一点?提前致谢。

最佳答案

我设法实现了我想要的。可能有人会对此感兴趣。

我在 angular-cli-build.js 中从 Angular2App 继承了 MyAngular2App 并覆盖了 BroccoliPlugin 的方法 read .每次构建发生时都会调用它。但是还有另一个问题——如果我更新 app/src/version.ts broccoli-watcher 会触发另一轮构建...我尝试了不同的解决方案,试图从 watch 等中排除该文件,但没有成功。所以我以更“系统”的方式解决了这个问题。将文件 version.ts 移出 src 文件夹并在其位置创建符号链接(symbolic link)。符号链接(symbolic link)不会在原始文件更新时更新。

angular-cli-build.js:

'use strict';

var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
var fs = require('fs');

class MyAngular2App extends Angular2App {
constructor(project, inputNode, options) {
super(project, inputNode, options);
}

read(x) {
var _ver = require('./build_version.js');
_ver.build++;
_ver.version = _ver.x + '.' + _ver.y + '.' + _ver.z + '.' + _ver.build;
console.log(" Build version: " + _ver.version);

var fsErr = function (err) {
if (err) {
return console.log(err);
}
};

var ver = "exports.x = '" + _ver.x + "';\n" +
"exports.y = '" + _ver.y + "';\n" +
"exports.z = '" + _ver.z + "';\n" +
"exports.build = " + _ver.build + ";\n";
fs.writeFile("build_version.js", ver, fsErr);

ver = "export const version = {\n major: " + _ver.x + ",\n minor: " + _ver.y + ",\n patch: " + _ver.z + ",\n build: "
+ _ver.build + ",\n text: '" + _ver.version + "'\n};\n";
fs.writeFile("version.ts", ver, fsErr);

return super.read(x);
}

}

module.exports = function (defaults) {
return new MyAngular2App(defaults, {
vendorNpmFiles: [
'systemjs/dist/system-polyfills.js',
'systemjs/dist/system.src.js',
'zone.js/dist/**/*.+(js|js.map)',
'es6-shim/es6-shim.js',
'reflect-metadata/**/*.+(ts|js|js.map)',
'rxjs/**/*.+(js|js.map)',
'@angular/**/*.+(js|js.map)',
'underscore/underscore-min.js',
'stompjs/lib/stomp.min.js',
'moment/moment.js'
]
});
};

build_version.js

exports.x = '0';
exports.y = '7';
exports.z = '3';
exports.build = 2818;

版本.ts:

export const version = {
major: 0,
minor: 7,
patch: 3,
build: 2818,
text: '0.7.3.2818'
};

关于typescript - 有没有办法在项目类中获取构建和版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37854347/

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