在我的项目中,我使用带有require钩子的Babel 6。我需要加载我写的自定义babel插件。但我是否真的需要首先使用npm发布我的插件,然后在我的主项目.babelrc
中包含插件名称?
有没有办法直接加载插件代码?换句话说,我可以直接加载以下内容吗?
export default function({types: t }) {
return {
visitor: {
...
}
};
}
答案 0 :(得分:20)
如果您在.babelrc中列出插件,请提供插件的路径,而不是标准发布的插件名称。
"plugins": ["transform-react-jsx", "./your/plugin/location"]
导出插件功能时,您可能需要使用module.exports =
代替export default
,因为ES2015模块尚未在Node中完全实现。
答案 1 :(得分:0)
这是我的整个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
};
}
plugins数组中的第一项是以数组形式的plugin with options。第二项是我自己的本地插件。
在my-babel-plugin
文件夹中,必须有一个带有“ main”条目的package.json
,通常是"main": "lib/index.js"
或"main": "src/index.js"
。