我正在使用Gutenberg WordPress块编辑器开始一个新项目。使用withSelect创建自定义块和使用api数据的功能似乎非常有用,但是我觉得我确实缺少任何一种自动完成功能,特别是由于当前文档并不理想。
我主要在VSCode工作,所以我主要对任何IntelliSense插件感兴趣。
我终于明白了。问题是,如果您像这样导入变量:
const { __ } = wp.i18n;
const { registerBlockType } = wp.blocks;
现在,如果您开始输入__(
或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安装,则需要确保将这些模块作为externals添加到webpack.config.js文件中,如下所示:
externals: {
"@wordpress/blocks": ["wp","blocks"],
"@wordpress/i18n": ["wp","i18n"]
}