0.0.2 • Published 6 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
- passfalse
to disable process polyfillingglobal
- passfalse
to disable global polyfillingbuffer
- passfalse
to disable Buffer polyfillingdirname
- passfalse
to disable__dirname
polyfillingfilename
- passfalse
to disable__filename
polyfillingbaseDir
which is used for resolving__dirname
and__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.