Создайте и используйте плагин Babel, не делая его модулем npm

В моем проекте я использую Babel 6 с требуемым крюком. Мне нужно загрузить пользовательский плагин babel, который я написал. Но действительно ли мне нужно публиковать мой плагин, используя сначала npm, а затем включить имя плагина в мой основной проект .babelrc?

Есть ли способ напрямую загрузить код плагина? Другими словами, могу ли я просто загрузить следующее непосредственно?

export default function({types: t }) {
  return {
    visitor: {
      ...
    }
  };
}

Ответ 1

Когда вы указываете свои плагины в своем .babelrc, укажите путь к плагину вместо стандартного опубликованного имени плагина.

"plugins": ["transform-react-jsx", "./your/plugin/location"]

При экспорте вашей функции плагина вам, вероятно, придется использовать module.exports = вместо export default, так как модули ES2015 еще не были полностью реализованы в Node.

Ответ 2

Это весь babel.config.js файл babel.config.js.

module.exports = function (api) {
  api.cache(true);

  const presets = ["@babel/preset-env", "@babel/preset-react"];
  const plugins = [ 
    ["@babel/plugin-proposal-pipeline-operator", { "proposal": "minimal" }],
    "c:\\projects\\my-babel-plugin"
  ];

  return {
    presets,
    plugins
  };
}

Первый элемент в массиве плагинов - это плагин с опциями в виде массива. Второй пункт - мой собственный локальный плагин.

Внутри my-babel-plugin должен быть package.json с записью "main", обычно "main": "lib/index.js" или "main": "src/index.js".