nodefy
v0.2.2
Published
convert AMD modules into a node.js compatible format
Downloads
867
Readme
nodefy
convert AMD modules into a node.js compatible format.
How?
This tool uses Esprima to parse the code and replace
define()
calls, doing the less amount of changes as possible to the code.
Input
define(['foo', '../bar/baz'], function(foo, baz){
var lorem = 'ipsum';
return {
log : function(){
console.log(lorem);
}
};
});
Output
var foo = require('foo');
var baz = require('../bar/baz');
var lorem = 'ipsum';
module.exports = {
log : function(){
console.log(lorem);
}
};
CLI
You can use it as a CLI tool:
[sudo] npm install -g nodefy
nodefy -o cjs "src/**.js"
This will convert all ".js" files inside the src
folder and put the results
on the cjs
folder.
It also works with stdin
and stdout
:
cat "src/foo.js" | nodefy
For a list of available options run:
nodefy -h
Standalone Lib
It is also available as a regular node.js library.
var nodefy = require('nodefy');
// nodefy.parse(string)
// returns node.js style module
var cjsModule = nodefy.parse(jsString);
// nodefy.convert(inputPath [, outputPath], callback)
// if outputPath is omitted it won't write the result
nodefy.convert('foo.js', function(err, result){
console.log(result);
});
// nodefy.batchConvert(glob [, outputFolder], callback)
// if outputFolder is omitted it won't write the result
nodefy.batchConvert('src/**.js', 'cjs', function(err, results){
// results is an array of {sourcePath, outputPath, result}
});
Inspiration / Why?
I couldn't find any tool that did what I wanted - convert AMD modules into plain node.js - so I decided to code my own. There are alternatives but they all add more complexity than I wanted.
This project was created mainly because of amd-utils, since many methods are useful on both environments.
The name was inpired by browserify.
Alternatives
License
Released under the MIT license