У меня есть проект сайта Гэтсби. Поскольку конфигурация Babel по умолчанию в Gatsby содержит babel-plugin-macros
, мне не нужно много ее настраивать.
Например, я установил preval.macro , и он отлично работает.
Теперь я хочу создать свой собственный макрос для каких-то вещей. Поэтому я создал новый пакет NPM, содержащий только пакет. json, index. js и макрос. js. Макрос сам по себе ничего не делает.
Но если я установлю пакет и попытаюсь его использовать, я получу
MacroError: Макрос, который вы импортировали из "undefined", выполняется вне контекста компиляции с babel- плагин-макросы. Это означает, что у вас неправильно настроен плагин babel "babel-plugin-macros".
пакет. json
{
"name": "my-package",
"version": "0.0.21-alpha",
"description": "my package description",
"main": "dist/index.js",
"scripts": {
...
},
"keywords": [],
"author": "John Doe <john@doe.com>",
"license": "ISC",
"dependencies": {
...
}
}
index. js
import macro from "./macro";
export default macro;
macro. js
import { createMacro } from "babel-plugin-macros";
export default createMacro(macro);
function macro({ references, babel, path }) {
const { default: items = [] } = references;
items.forEach((reference) => {
if (!reference.parentPath.node.quasi) {
return;
}
});
}
Update
Я бы хотел использовать такой макрос
import macro from "my-macro";
console.log(macro`something`)
Обновление 2
Я создал codesandbox для крошечного стартового проекта Гэтсби, который показывает проблему.
Codesandbox