Skip to content
This repository has been archived by the owner on Jan 31, 2023. It is now read-only.

Commit

Permalink
Enable source maps by default (#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisbreiding committed May 20, 2019
1 parent e6d60cb commit dae6488
Show file tree
Hide file tree
Showing 6 changed files with 1,479 additions and 1,003 deletions.
3 changes: 3 additions & 0 deletions README.md
Expand Up @@ -64,6 +64,8 @@ If you pass one of the top-level options in (`extensions`, `transform`, etc), it

[watchify](https://github.com/browserify/watchify) is automatically configured as a plugin (as needed), so it's not necessary to manually specify it.

Source maps are always enabled unless explicitly disabled by specifying `debug: false`.

**Default**:

```javascript
Expand Down Expand Up @@ -92,6 +94,7 @@ If you pass one of the top-level options in (`extensions`, `transform`, etc), it
},
]
],
debug: true,
plugin: [],
cache: {},
packageCache: {}
Expand Down
3 changes: 2 additions & 1 deletion __snapshots__/e2e_spec.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 29 additions & 14 deletions index.js
Expand Up @@ -4,6 +4,7 @@ const path = require('path')
const Promise = require('bluebird')
const fs = require('./fs')

const cloneDeep = require('lodash.clonedeep')
const browserify = require('browserify')
const watchify = require('watchify')

Expand All @@ -26,10 +27,9 @@ const defaultOptions = {
{
ast: false,
babelrc: false,
// irons out differents between ES6 modules and node exports
plugins: [
...[
'babel-plugin-add-module-exports',
'babel-plugin-add-module-exports', // irons out differences between ES6 modules and node exports
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-object-rest-spread',
].map(require.resolve),
Expand Down Expand Up @@ -60,6 +60,32 @@ const defaultOptions = {
},
}

const getBrowserifyOptions = (entry, userBrowserifyOptions = {}) => {
let browserifyOptions = cloneDeep(defaultOptions.browserifyOptions)

// allow user to override default options
browserifyOptions = Object.assign(browserifyOptions, userBrowserifyOptions, {
// these must always be new objects or 'update' events will not fire
cache: {},
packageCache: {},
})

// unless user has explicitly turned off source map support, always enable it
// so we can use it to point user to the source code
if (userBrowserifyOptions.debug !== false) {
browserifyOptions.debug = true
}

// we need to override and control entries
Object.assign(browserifyOptions, {
entries: [entry],
})

debug('browserifyOptions: %o', browserifyOptions)

return browserifyOptions
}

// export a function that returns another function, making it easy for users
// to configure like so:
//
Expand Down Expand Up @@ -101,20 +127,9 @@ const preprocessor = (options = {}) => {
debug('input:', filePath)
debug('output:', outputPath)

// allow user to override default options
const browserifyOptions = Object.assign({}, defaultOptions.browserifyOptions, options.browserifyOptions, {
// these must always be new objects or 'update' events will not fire
cache: {},
packageCache: {},
})
const browserifyOptions = getBrowserifyOptions(filePath, options.browserifyOptions)
const watchifyOptions = Object.assign({}, defaultOptions.watchifyOptions, options.watchifyOptions)

// we need to override and control entries
Object.assign(browserifyOptions, {
entries: [filePath],
})

debug('browserifyOptions %o:', browserifyOptions)
const bundler = browserify(browserifyOptions)

if (file.shouldWatch) {
Expand Down

0 comments on commit dae6488

Please sign in to comment.