Skip to content

Commit

Permalink
Upgrade to Babel 7 and @babel scoped packages (#255)
Browse files Browse the repository at this point in the history
* Support Babel 7

* Update browserify-cli.js

* Remove Babel 6 from peer dependencies

* Do not call callback if error occured

* Change error case to calling super() w/o a superclass

* Update package-lock.json

* update readme [skip ci]

* revert small change [skip ci]
  • Loading branch information
ylemkimon authored and hzoo committed Apr 18, 2018
1 parent 0dd0555 commit c5e4d40
Show file tree
Hide file tree
Showing 16 changed files with 1,321 additions and 813 deletions.
22 changes: 13 additions & 9 deletions README.md
Expand Up @@ -7,6 +7,10 @@ As of [Babel 6.0.0](http://babeljs.io/blog/2015/10/29/6.0.0/) there are **no plu
## Installation

```sh
# Babel 7
$ npm install --save-dev babelify@next @babel/core

# Babel 6
$ npm install --save-dev babelify babel-core
```

Expand All @@ -15,7 +19,7 @@ $ npm install --save-dev babelify babel-core
### CLI

```sh
$ browserify script.js -o bundle.js -t [ babelify --presets [ env react ] ]
$ browserify script.js -o bundle.js -t [ babelify --presets [ "@babel/preset-env", "@babel/preset-react" ] ]
```

### Node
Expand All @@ -24,15 +28,15 @@ $ npm install --save-dev babelify babel-core
var fs = require("fs");
var browserify = require("browserify");
browserify("./script.js")
.transform("babelify", {presets: ["env", "react"]})
.transform("babelify", {presets: ["@babel/preset-env", "@babel/preset-react"]})
.bundle()
.pipe(fs.createWriteStream("bundle.js"));
```

**NOTE:** [Presets and plugins](http://babeljs.io/docs/plugins/) need to be installed as separate modules. For the above examples to work, you'd need to also install [`babel-preset-env`](https://www.npmjs.com/package/babel-preset-env) and [`babel-preset-react`](https://www.npmjs.com/package/babel-preset-react):
**NOTE:** [Presets and plugins](http://babeljs.io/docs/plugins/) need to be installed as separate modules. For the above examples to work, you'd need to also install [`@babel/preset-env`](https://www.npmjs.com/package/@babel/preset-env) and [`@babel/preset-react`](https://www.npmjs.com/package/@babel/preset-react):

```sh
$ npm install --save-dev babel-preset-env babel-preset-react
$ npm install --save-dev @babel/preset-env @babel/preset-react
```

### Options
Expand All @@ -42,23 +46,23 @@ Selected options are discussed below. See the [babel](http://babeljs.io/) docs f
Options may be passed in via standard [browserify](https://github.com/substack/node-browserify#btransformtr-opts) ways:

```sh
$ browserify -t [ babelify --presets [ env react ] ]
$ browserify -t [ babelify --presets [ "@babel/preset-env", "@babel/preset-react" ] ]
```

```js
browserify().transform("babelify", {presets: ["env", "react"]});
browserify().transform("babelify", {presets: ["@babel/preset-env", "@babel/preset-react"]});
```

```js
var babelify = require("babelify");
browserify().transform(babelify, {presets: ["env", "react"]});
browserify().transform(babelify, {presets: ["@babel/preset-env", "@babel/preset-react"]});
```

Or, with the `configure` method:

```js
browserify().transform(babelify.configure({
presets: ["env", "react"]
presets: ["@babel/preset-env", "@babel/preset-react"]
}));
```

Expand Down Expand Up @@ -178,7 +182,7 @@ specify options then you can use:
```json
{
"browserify": {
"transform": [["babelify", { "presets": ["env"] }]]
"transform": [["babelify", { "presets": ["@babel/preset-env"] }]]
}
}
```
Expand Down
28 changes: 15 additions & 13 deletions index.js
@@ -1,6 +1,7 @@
var stream = require("stream");
var babel = require("babel-core");
var babel = require("@babel/core");
var util = require("util");
var path = require("path")

module.exports = Babelify;
util.inherits(Babelify, stream.Transform);
Expand All @@ -22,21 +23,21 @@ Babelify.prototype._transform = function (buf, enc, callback) {
};

Babelify.prototype._flush = function (callback) {
try {
var result = babel.transform(this._data, this._opts);
this.emit("babelify", result, this._filename);
var code = result.code;
this.push(code);
} catch(err) {
this.emit("error", err);
return;
}
callback();
babel.transform(this._data, this._opts, (err, result) => {
if (err) {
this.emit("error", err);
} else {
this.emit("babelify", result, this._filename);
var code = result.code;
this.push(code);
callback();
}
});
};

Babelify.configure = function (opts) {
opts = Object.assign({}, opts);
var extensions = opts.extensions ? babel.util.arrayify(opts.extensions) : null;
var extensions = opts.extensions || babel.DEFAULT_EXTENSIONS;
var sourceMapsAbsolute = opts.sourceMapsAbsolute;
if (opts.sourceMaps !== false) opts.sourceMaps = "inline";

Expand All @@ -62,7 +63,8 @@ Babelify.configure = function (opts) {
if (opts.presets && opts.presets._) opts.presets = opts.presets._;

return function (filename) {
if (!babel.util.canCompile(filename, extensions)) {
var extname = path.extname(filename);
if (extensions.indexOf(extname) === -1) {
return stream.PassThrough();
}

Expand Down

0 comments on commit c5e4d40

Please sign in to comment.