0.0.2 • Published 7 years ago
@allex/rollup-plugin-node-globals v0.0.2
@allex/rollup-plugin-node-globals
Some enhances base on rollup-plugin-node-globals
- Add extenssion defaults to '.js', '.ts', '.mjs'
- Remove source files for npm dist.
Plugin to insert node globals including so code that works with browserify should work even if it uses process or buffers. This is based on rollup-plugin-inject .
- process
- global
- Buffer
__dirname__filename
Plus process.nextTick and process.browser are optimized to only pull in
themselves and __dirname and __filename point to the file on disk
There are a few options to control output
process- passfalseto disable process polyfillingglobal- passfalseto disable global polyfillingbuffer- passfalseto disable Buffer polyfillingdirname- passfalseto disable__dirnamepolyfillingfilename- passfalseto disable__filenamepolyfillingbaseDirwhich is used for resolving__dirnameand__filename.
examples
var foo;
if (process.browser) {
foo = 'bar';
} else {
foo = 'baz';
}turns into
import {browser} from 'path/to/process';
var foo;
if (browser) {
foo = 'bar';
} else {
foo = 'baz';
}but with rollup that ends up being
var browser = true;
var foo;
if (browser) {
foo = 'bar';
} else {
foo = 'baz';
}or
var timeout;
if (global.setImmediate) {
timeout = global.setImmediate;
} else {
timeout = global.setTimeout;
}
export default timeout;turns into
import {_global} from 'path/to/global.js';
var timeout;
if (_global.setImmediate) {
timeout = _global.setImmediate;
} else {
timeout = _global.setTimeout;
}
export default timeout;which rollup turns into
var _global = typeof global !== "undefined" ? global :
typeof self !== "undefined" ? self :
typeof window !== "undefined" ? window : {}
var timeout;
if (_global.setImmediate) {
timeout = _global.setImmediate;
} else {
timeout = _global.setTimeout;
}
var timeout$1 = timeout;
export default timeout$1;With that top piece only showing up once no matter how many times global was used.