Hallo,
vorab, ich bin ein absoluter Neuling in Sachen Node.js; ich habe es mir buchstäblich vor zwei Tagen runtergeladen. Leider weiß ich nicht, wo ich da mit „lernen“ anfangen soll – ich wäre also über ein paar Tipps in dieser Richtung sehr dankbar. Wie habt ihr da angefangen, welche Internet-Literatur könnt ihr zu diesem Thema empfehlen?
Nun zu meinem Anliegen: irgendwo muss man ja mit Node anfangen, also habe ich mir gedacht, dass ich mir ein Script schreibe, mit dem ich meine JavaScript-Dateien ganz einfach mit Babel übersetzen lassen kann.
Mit meinem Editor (Notepad++) kann ich „externe Programme“ ausführen. Ich habe mir also ein Batch-Script geschrieben, in dem ich mein compile-Script mit Node aufrufe. Dieses Batch-Script habe ich mir auf F5 gelegt. Drücke ich F5, wird mein compile-Script aufgerufen – klappt also soweit.
Scripte, die im selben Ordner wie das compile-Script liegen, kann ich problemlos compilieren, wenn ich aber ein Script compilieren will, das woanders liegt, bekomme ich so ein Error: Error: Couldn't find preset "es2015" relative to directory "../path/to/my/directory"
Entweder ich habe irgendeine Option übersehen, oder das ist unheimlich dämlich. Ich habe Babel am Start (require('babel-core')
) und es kann nichts mit den Presets anfangen, sobald ich ein Script in einem anderen Ordner compilieren will – top. Hat jemand eine Idee?
Meine Batch-Script:
@echo off
node babelCompile.js -d=../path/to/my/directory/ input.es6.js output.js
pause>NUL
exit
Mein compile-Script:
let babel = require('babel-core');
let fs = require('fs');
let args = require('minimist')(process.argv.slice(2), {
alias : {
d : 'fileDir'
},
default : {
d : './'
}
});
if (args._.length < 2)
return console.log('babelCompile : input file and output file are required.'), undefined;
let options = {
presets : ['es2015'],
babelrc : false,
ast : false,
compact : false,
minified : false,
comments : false,
retainLines : false
};
babel.transformFile(args.fileDir + args._[0], options, function(err, res) {
if (err)
throw err;
let compiledCode = res.code.replace(/\r\n|\n|\r/g, '\r\n');
fs.writeFile(args.fileDir + args._[1], '\uFEFF' + compiledCode, function(err) {
if (err)
throw err;
console.log(`Successfully compiled ${args._[0]} to ${args._[1]}`);
});
});
Norbert