1.0.7 • Published 9 years ago
iso-babel v1.0.7
#iso-babel
This package is a Babel plugin that lets you target the server or client directly in isomorphic JavaScript.
For example this:
import {isServer, isClient} from 'iso-babel';
if (isServer) {
console.log(isServer);
}
if (isClient) {
console.log(isClient);
}
...becomes this on the server:
import {isServer} from 'iso-babel';
console.log(isServer);
...and becomes this on the client:
import {isClient} from 'iso-babel';
console.log(isClient);
This also works:
if (isServer) {
console.log('This is the server.');
} else {
console.log('We are running on client!');
}
This is too:
if (isServer) {
console.log(isServer);
} else if (isClient) {
console.log(isClient);
if (isServer) {
// This code will never appear anywhere or run.
}
} else {
console.log('This code will never appear anywhere and will never run.');
}
##Usage
npm i iso-babel
For server:
babel --plugins iso-babel/is-server myscript.js > server.js
For client:
babel --plugins iso-babel/is-client myscript.js > client.js
From JavaScript:
const fs = require('fs');
const babel = require('babel')
fs.readFile('./example.js', 'utf8', (err, contents) => {
const result = babel.transform(contents, {
plugins: ['iso-babel/is-server'],
});
fs.writeFile('./bundle.js', result.code, {encoding: 'utf8'}, err => {
if (err) {
console.log('Received an error', err);
process.exit(1);
}
});
});