我正在使用 Gutenberg WordPress 块编辑器开始一个新项目。使用 withSelect 创建自定义块和使用 api 数据的能力似乎非常有用,但我觉得我真的缺少任何类型的自动完成功能,尤其是当前文档并不理想。
我主要在 VSCode 中工作,所以我主要对任何 IntelliSense 插件感兴趣。
我正在使用 Gutenberg WordPress 块编辑器开始一个新项目。使用 withSelect 创建自定义块和使用 api 数据的能力似乎非常有用,但我觉得我真的缺少任何类型的自动完成功能,尤其是当前文档并不理想。
我主要在 VSCode 中工作,所以我主要对任何 IntelliSense 插件感兴趣。
我终于想通了。问题是,如果您像这样导入变量:
const { __ } = wp.i18n;
const { registerBlockType } = wp.blocks;
现在,如果您开始输入__(
or registerBlockType(
,则不会触发智能感知。
如果您使用以下语句导入,则此问题得到解决:
import { __ } from '@wordpress/i18n';
import { registerBlockType } from '@wordpress/blocks';
这将从您的 node_modules 文件夹加载,因此如果这引发错误,您可能需要安装依赖项:
npm install --save-dev @wordpress/blocks @wordpress/i18n
但是,这引入了最后一个潜在问题:不需要在包中导入模块,因为 WordPress 已经加载了 wp 对象。所以没有必要在我们的 webpack 包中再次添加所有这些代码。
如果您使用 创建块create-guten-block
,则此时已设置好,因为 create-guten-block 已经自动处理了此问题。
但是,如果您使用自定义 Webpack 安装,则需要确保将这些模块作为外部模块添加到webpack.config.js文件中,如下所示:
externals: {
"@wordpress/blocks": ["wp","blocks"],
"@wordpress/i18n": ["wp","i18n"]
}