New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

git-revision-webpack-plugin

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

git-revision-webpack-plugin

Simple webpack plugin that generates VERSION and COMMITHASH files during build

  • 3.0.6
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
126K
decreased by-1.59%
Maintainers
1
Weekly downloads
 
Created
Source

Git revision webpack plugin

Build Status npm version downloads js-standard-style Code Climate

Simple webpack plugin that generates VERSION and COMMITHASH files during build based on a local git repository.

Usage

Given a webpack 4 project (check below for old webpack versions), install it as a local development dependency:

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

Then, simply configure it as a plugin in the webpack config:

var GitRevisionPlugin = require('git-revision-webpack-plugin')

module.exports = {
  plugins: [
    new GitRevisionPlugin()
  ]
}

It outputs a VERSION based on git-describe such as:

v0.0.0-34-g7c16d8b

A COMMITHASH such as:

7c16d8b1abeced419c14eb9908baeb4229ac0542

And (optionally when branch is enabled) a BRANCH such as:

master

Path Substitutions

It is also possible to use path substitutions on build to get the revision, version or branch as part of output paths.

  • [git-revision-version]
  • [git-revision-hash]
  • [git-revision-branch] (only when branch is enabled)

Example:

module.exports = {
  output: {
    publicPath: 'http://my-fancy-cdn.com/[git-revision-version]/',
    filename: '[name]-[git-revision-hash].js'
  }
}

Plugin API

The VERSION, COMMITHASH and BRANCH are also exposed through a public API.

Example using the DefinePlugin:

const webpack = require('webpack')
const GitRevisionPlugin = require('git-revision-webpack-plugin')
const gitRevisionPlugin = new GitRevisionPlugin()

module.exports = {
  plugins: [
    gitRevisionPlugin,
    new webpack.DefinePlugin({
      'VERSION': JSON.stringify(gitRevisionPlugin.version()),
      'COMMITHASH': JSON.stringify(gitRevisionPlugin.commithash()),
      'BRANCH': JSON.stringify(gitRevisionPlugin.branch()),
    })
  ]
}

Configuration

The plugin requires no configuration by default, but it is possible to configure it to support custom git workflows.

lightweightTags: false

If you need lightweight tags support, you may turn on lightweightTags option in this way:

var GitRevisionPlugin = require('git-revision-webpack-plugin')

module.exports = {
  plugins: [
    new GitRevisionPlugin({
      lightweightTags: true
    })
  ]
}

branch: false

If you need branch name support, you may turn on branch option in this way:

var GitRevisionPlugin = require('git-revision-webpack-plugin')

module.exports = {
  plugins: [
    new GitRevisionPlugin({
      branch: true
    })
  ]
}

commithashCommand: 'rev-parse HEAD'

To change the default git command used to read the value of COMMITHASH.

This configuration is not not meant to accept arbitrary user input and it is executed by the plugin without any sanitization.

var GitRevisionPlugin = require('git-revision-webpack-plugin')

module.exports = {
  plugins: [
    new GitRevisionPlugin({
      commithashCommand: 'rev-list --max-count=1 --no-merges HEAD'
    })
  ]
}

versionCommand: 'describe --always'

To change the default git command used to read the value of VERSION.

This configuration is not not meant to accept arbitrary user input and it is executed by the plugin without any sanitization.

var GitRevisionPlugin = require('git-revision-webpack-plugin')

module.exports = {
  plugins: [
    new GitRevisionPlugin({
      versionCommand: 'describe --always --tags --dirty'
    })
  ]
}

branchCommand: 'rev-parse --abbrev-ref HEAD'

To change the default git command used to read the value of BRANCH.

This configuration is not not meant to accept arbitrary user input and it is executed by the plugin without any sanitization.

var GitRevisionPlugin = require('git-revision-webpack-plugin')

module.exports = {
  plugins: [
    new GitRevisionPlugin({
      branchCommand: 'rev-parse --symbolic-full-name HEAD'
    })
  ]
}

Outdated webpack

If your project is not using webpack version 4 or greater, you will need to install an older version of this package:

npm install git-revision-webpack-plugin@2.5.1

Check issue 29 for more information.

Keywords

FAQs

Package last updated on 14 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc