├── README.md ├── index.js └── package.json /README.md: -------------------------------------------------------------------------------- 1 | # browserify-versionify 2 | 3 | Browserify transform to replace placeholder with package version. 4 | 5 | By default, it replaces `__VERSION__` with the version from `package.json` in your source code. E.g. before: 6 | 7 | ```js 8 | var version = '__VERSION__'; 9 | ``` 10 | 11 | after: 12 | 13 | ```js 14 | var version = '1.0.0'; 15 | ``` 16 | 17 | ## Usage 18 | 19 | From command line: 20 | 21 | browserify -t browserify-versionify 22 | 23 | From Node.js: 24 | 25 | browserify().transform('browserify-versionify'); 26 | 27 | // Configure (default values shown) 28 | browserify().transform('browserify-versionify', { 29 | placeholder: '__VERSION__', 30 | version: pkg.version 31 | }); 32 | 33 | You can also provide a `filter` property to whitelist files to apply the transform to (e.g. `filter: /\.js$/`). 34 | 35 | You can also add the transform to your `package.json`: 36 | 37 | ```json 38 | { 39 | "browserify": { 40 | "transform": [ 41 | "browserify-versionify" 42 | ] 43 | } 44 | } 45 | ``` 46 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var findRoot = require('find-root'), 2 | path = require('path'), 3 | through2 = require('through2'); 4 | 5 | function versionify(file, options) { 6 | 7 | options = options || {}; 8 | var filter = options.filter; 9 | 10 | if (filter && !filter.test(file)) { 11 | return through2(); 12 | } 13 | 14 | var placeholder = options.placeholder || '__VERSION__', 15 | re = new RegExp(placeholder, 'g'), 16 | version = options.version || 17 | require(path.join(findRoot(file), 'package.json')).version; 18 | 19 | return through2({objectMode: true}, function(chunk, encoding, callback) { 20 | return callback(null, chunk.toString().replace(re, version)); 21 | }); 22 | } 23 | 24 | versionify.configure = function(options) { 25 | return function(file) { 26 | return versionify(file, options); 27 | }; 28 | }; 29 | 30 | module.exports = versionify; 31 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "browserify-versionify", 3 | "version": "1.0.6", 4 | "description": "Browserify transform to replace placeholder with package version", 5 | "keywords": [ 6 | "browserify", 7 | "transform", 8 | "browserify-transform", 9 | "version" 10 | ], 11 | "main": "index.js", 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/webpro/versionify.git" 15 | }, 16 | "author": { 17 | "name": "Lars Kappert", 18 | "email": "lars@webpro.nl", 19 | "url": "http://webpro.nl" 20 | }, 21 | "license": "MIT", 22 | "dependencies": { 23 | "find-root": "^0.1.1", 24 | "through2": "0.6.3" 25 | } 26 | } 27 | --------------------------------------------------------------------------------