Package Exports
- browserify-optional
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (browserify-optional) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
browserify-optional
It is a common pattern in Node to support optional dependencies via requires in try..catch blocks. Browserify doesn't support this by default and throws a compile time error when it cannot find a module. You can solve the problem by using browserify's exclude option, but this works globally instead of at a per-module level. This transform fixes the problem by moving the compile time error to a runtime error for requires of missing modules inside try..catch blocks.
Example
The transform would transform the following code such that requiring missing-module would throw
a runtime error instead of a compile time error, making the code work as expected.
try {
var x = require('missing-module');
} catch (e) {
var x = require('replacement-module');
}To set it up in browserify, add this to your package.json:
"browserify": {
"transform": ["browserify-optional"]
}License
MIT