DraftJS getBlocksAsArray() returns 生产中的一个数组,但只是开发中的一个数组(并且有效)

DraftJS getBlocksAsArray() returns an array of an array in production but just an array in dev (and works)

我有以下代码:

 const sampleMarkup = "<div>Insert Text Here</div>";

    const blocksFromHTML = convertFromHTML(sampleMarkup);
    let builtContentState = ContentState.createFromBlockArray(blocksFromHTML.contentBlocks);
    console.log("builtContentState", builtContentState.getBlocksAsArray());

在我的开发环境中,控制台日志如下所示:

而在生产环境中它看起来像这样:

不用说,它们看起来非常不同,而且来自相同的代码。除此之外,构建中的所有内容都可以正常工作(这是一个相当大的项目,有很多移动部件、节点模块等)所以我不确定是什么导致了这个特定问题。

从根本上说,问题是针对相同的输入和结果,我从 getBlocksAsArray() 得到不同的输出;

const sampleMarkup = "<div>Insert Text Here</div>";

const blocksFromHTML = convertFromHTML(sampleMarkup);

let builtContentState = ContentState.createFromBlockArray(blocksFromHTML.contentBlocks);
console.log("builtContentState", builtContentState.getBlocksAsArray());

return <div>{JSON.stringify(builtContentState)}</div>

其中 JSX 输出显示相同形状的对象,但 getBlocksAsArray() 具有不同的输出(根据上面的屏幕截图)

我发现这是由于我的 package.json 中包含的 immutablejs 版本比 draftjs 支持的版本更新 - 不确定为什么这会影响 draftjs 但看起来在缩小过程中 getBlocksAsArray() 线被交叉了在 draftjs 的内部包和我在 package.json

中包含的那个之间