2016-05-24 8 views
0

Babel zu programmieren Ich habe Probleme, babel programmatisch zu verwenden.Eine Voreinstellung übergeben, um programmgesteuert

"use strict"; 

const babel = require("babel-core") 
    , es2015 = require("babel-preset-es2015") 
    ; 

babel.transformFile("my-file.js", { 
    presets: [es2015] 
}, (err, result) => 
    console.log(err || result) 
); 

Dieser endet mit diesem Fehler:

Couldn't find preset "es2015" relative to directory "/Users/myusername"

Obwohl ich die babel-preset-es2015 als lokale Abhängigkeit installiert haben. Wie behebe ich das?

Ich möchte nicht babel-preset-es2015 und babel-core als lokale Abhängigkeiten des Projekts zu halten.

Warum erscheint dieser Fehler?

Antwort

0

Nun, ich begann Debugging tief in der babel-core und fand einen Scheck für opts.babelrc !== false.

Ich habe wahrscheinlich ein .babelrc in meinem Home-Verzeichnis, aber da ich babel programmatisch nutzen will, ich will nur, es zu ignorieren, so verwende ich babelrc: false in den Optionen:

"use strict"; 

const babel = require("babel-core") 
    , es2015 = require("babel-preset-es2015") 
    ; 

babel.transformFile("my-file.js", { 
    presets: [es2015] 
, babelrc: false 
}, (err, result) => 
    console.log(err || result) 
); 
+0

'.babelrc' Dateien gehören Im Projektordner sollten Sie niemals einen '.babelrc' in einem generischen Elternordner haben, der wie in diesem Fall nach Ärger fragt. – loganfsmyth

+0

@loganfsmyth Ja, wahr. Da ich eigentlich keine projektspezifische Babel-Konfiguration haben möchte, habe ich ['babel-it'] (https://github.com/IonicaBizau/babel-it) erstellt, die den Code im aktuellen Verzeichnis vorher babelisiert 'npm veröffentlichen'. –

Verwandte Themen