2016-05-24 3 views
0

Я изо всех сил пытаюсь использовать babel.Передача предустановки в babel программно

"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) 
); 

Это заканчивается с этой ошибкой:

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

Хотя, я установить babel-preset-es2015 как локальная зависимость. Как это исправить?

Я не хочу содержать babel-preset-es2015 и babel-core как локальные зависимости проекта.

Зачем возникает эта ошибка?

ответ

0

Ну, я начал отлаживать глубоко в babel-core и нашел чек на opts.babelrc !== false.

я, вероятно, .babelrc в моем домашнем каталоге, но так как я хочу использовать babel программно, я просто хочу, чтобы игнорировать его, поэтому я использую babelrc: false в вариантах:

"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' файлы принадлежат в папке проекта у вас никогда не должно быть '.babelrc' в родительской папке с общим родительским каталогом, это требует неприятностей, как в этом случае. – loganfsmyth

+0

@loganfsmyth Да, правда. Поскольку я действительно не хочу иметь конфигурацию Babel для конкретного проекта, я создал ['babel-it'] (https://github.com/IonicaBizau/babel-it), который просто обновляет код в текущем каталоге, прежде чем 'npm publish'. –

Смежные вопросы