Skip to content

browserify transform that exposes globals added via a script tag as modules so they can be required.

License

Notifications You must be signed in to change notification settings

thlorenz/exposify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

exposify build status

browserify transform that exposes globals added via a script tag as modules so they can be required.

<!-- index.html -->
<head>
  <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/three.js/r61/three.min.js"></script>
  <script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
  [..]
// main.js
var $ = require('jquery')
  , THREE = require('three')

console.log('THREE revision: ', THREE.REVISION);
console.log('jquery version: ', $().jquery);

Building via JavaScript

var browserify = require('browserify');

// configure what we want to expose
var exposeConfig = { expose: { jquery: '$', three: 'THREE' } };

browserify()
  .require(require.resolve('./main'), { entry: true })
  .transform('exposify', exposeConfig)
  .bundle({ debug: true })
  .pipe(fs.createWriteStream(path.join(__dirname, 'bundle.js'), 'utf8'))

Building via Commandline

Using the EXPOSIFY_CONFIG environment variable:

EXPOSIFY_CONFIG='{ "jquery": "$", "three": "THREE" }' browserify --debug -t exposify main.js > bundle.js

Or using a Browserify transform option:

browserify --debug -t [ exposify --expose [ --jquery $ --three THREE ] ] main.js > bundle.js

Or use browserify-shim which can configure exposify in package.json among other features.

Installation

npm install exposify

API

exposify::config

The config which is used by exposify to determine which require statemtents to replace and how. You need to set this or provide it via the EXPOSIFY_CONFIG environment variable.

 var b = browserify();
// setting via transform argument
b.transform('exposify', { expose: { jquery: '$', three: 'THREE' } });
 // setting from javascript
exposify.config = { jquery: '$', three: 'THREE' };
 # setting from command line
EXPOSIFY_CONFIG='{ "jquery": "$", "three": "THREE" }' browserify -t exposify ...
Source:

exposify::expose

Exposes the expose function that operates on a string

Source:

exposify::filePattern

Regex pattern of files whose content is exposified

Source:

exposify(file, opts) → {TransformStream}

browserify transform which exposes globals as modules that can be required.

Parameters:
Name Type Argument Description
file string

file whose content is to be transformed

opts Object <optional>

(exposify config), defaults to exposify.config or $EXPOSIFY_CONFIG

Source:
Returns:

transform that replaces require statements found in the code with global assigments

Type
TransformStream

generated with docme

License

MIT

About

browserify transform that exposes globals added via a script tag as modules so they can be required.

Resources

License

Stars

Watchers

Forks

Packages

No packages published