git-rev-webpack-plugin

Webpack plugin to use git branch, hash and tag as substitutions for file names

Usage no npm install needed!

<script type="module">
  import gitRevWebpackPlugin from 'https://cdn.skypack.dev/git-rev-webpack-plugin';
</script>

README

git-rev-webpack-plugin

NPM version Build Status Maintainability Test Coverage

Webpack plugin for using git branch, hash (from the last commit) and tag as substitutions in output.filename and output.chunkFilename.

Getting Started

Install it

npm install --save-dev git-rev-webpack-plugin

Add the plugin to your webpack config. For example:

const GitRevPlugin = require('git-rev-webpack-plugin');

module.exports = {
  plugins: [
    new GitRevPlugin(),
  ],
  output: {
    filename: '[name]-[git-branch]-[git-tag]-[git-hash].js',
  },
};

Alternatively you can save the instance to re-use it:

const GitRevPlugin = require('git-rev-webpack-plugin');

const gitRevPlugin = new GitRevPlugin();

module.exports = {
  plugins: [
    gitRevPlugin,
    new webpack.DefinePlugin({
      GITHASH: JSON.stringify(gitRevPlugin.hash()),
    }),
  ],
};

Options

You can customize the commands and the path.

  • branchCommand: The git command to get the branch.
    Defaults to: rev-parse --abbrev-ref HEAD
  • hashCommand: The git command to get the commit short hash.
    Defaults to: rev-parse --short HEAD
  • tagCommand: The git command to get the latest tag.
    Defaults to: describe --abbrev=0 —tags
  • path: The path to the project if not the current cwd.

API

  • branch(): Get the branch
  • hash(long): Get the hash
  • tag(): Get the tag

Credits

This is based on git-revision-webpack-plugin.

License

MIT