version_plugin.js 671 B

123456789101112131415161718192021222324252627282930313233
  1. const gitRevSync = require('git-rev-sync');
  2. const pkg = require('../package.json');
  3. let commit = 'unknown';
  4. try {
  5. commit = gitRevSync.short();
  6. } catch (e) {
  7. console.warn('Error fetching current git commit: ' + e);
  8. }
  9. const version = JSON.stringify({
  10. commit,
  11. source: pkg.homepage,
  12. version: process.env.CIRCLE_TAG || `v${pkg.version}`
  13. });
  14. class VersionPlugin {
  15. apply(compiler) {
  16. compiler.hooks.emit.tap('VersionPlugin', compilation => {
  17. compilation.assets['version.json'] = {
  18. source() {
  19. return version;
  20. },
  21. size() {
  22. return version.length;
  23. }
  24. };
  25. });
  26. }
  27. }
  28. module.exports = VersionPlugin;