draftjs 的绘制转换本身是在 浏览器中执行的,如果希望服务端进行执行相关方法,需要模拟一个dom 环境,如下DEMO 中使用了 jsdom 进行模拟
var React = require('react');
var ReactDOMServer = require('react-dom');
var {
ContentState,convertToRaw,convertFromHTML
} = require('draft-js');
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM();
document = dom.window.document;
HTMLElement = require("jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl").implementation;
HTMLAnchorElement = require("jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl").implementation;
var blocksFromHTML = convertFromHTML("<div>123</div>");
var data2 = ContentState.createFromBlockArray(
blocksFromHTML.contentBlocks,
blocksFromHTML.entityMap
);
var r = convertToRaw(data2)
console.log(r)
执行,可以看到输出的代码
node index.js