Я пытаюсь динамически заменить операторы "import".
Вот пример, который проверяет, заканчивается ли импорт плюсом.
module.exports = function(babel) {
return {
visitor: {
ImportDeclaration: function(path, state) {
// import abc from "./logic/+"
if( ! path.node.source.value.endsWith("/+"))
return;
path.replaceWithSourceString('import all from "./logic/all"')
}
}
}
}
Это дает ошибку
SyntaxError: src/boom.js: Unexpected token (1:1) - make sure this is an expression.
> 1 | (import all from "./logic/all")
Проблема в том, что replaceWithSourceString оборачивает строку в округлые фигурные скобки.
Если я заменю replaceWithSourceString на
path.replaceWithSourceString('console.log("Hi")')
, и это работает.. ¯_ (ツ) _ / ¯
Все и вся помогут вам быть великими