Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 创建并使用巴别塔插件,而不将其作为npm模块_Node.js_Babeljs - Fatal编程技术网

Node.js 创建并使用巴别塔插件,而不将其作为npm模块

Node.js 创建并使用巴别塔插件,而不将其作为npm模块,node.js,babeljs,Node.js,Babeljs,在我的项目中,我使用带require钩子的Babel6。我需要加载一个自定义的巴别塔插件,我写的。但是我真的需要先使用npm发布我的插件,然后在我的主项目的.babelrc中包含插件名称吗 有没有办法直接加载插件代码?换句话说,我可以直接加载以下内容吗 export default function({types: t }) { return { visitor: { ... } }; } 在.babelrc中列出插件的地方,提供插件的路径,而不是标准的已发

在我的项目中,我使用带require钩子的Babel6。我需要加载一个自定义的巴别塔插件,我写的。但是我真的需要先使用npm发布我的插件,然后在我的主项目的
.babelrc
中包含插件名称吗

有没有办法直接加载插件代码?换句话说,我可以直接加载以下内容吗

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

在.babelrc中列出插件的地方,提供插件的路径,而不是标准的已发布插件名称

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

导出插件函数时,可能需要使用
module.exports=
而不是
export default
,因为ES2015模块尚未在Node中完全实现。

这是我的整个
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”
,谢谢!我希望这在babel的网站/文档中更为明显。路径究竟应该是相对于什么的?它是相对于babel运行的每个文件的。。。这意味着它总是在变化。最好使用
path。解析
以获得插件的绝对路径并使用它