2

我正在使用 Gutenberg WordPress 块编辑器开始一个新项目。使用 withSelect 创建自定义块和使用 api 数据的能力似乎非常有用,但我觉得我真的缺少任何类型的自动完成功能,尤其是当前文档并不理想。

我主要在 VSCode 中工作,所以我主要对任何 IntelliSense 插件感兴趣。

4

1 回答 1

1

我终于想通了。问题是,如果您像这样导入变量:

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"]
  }
于 2020-03-23T23:00:56.377 回答