获取代码中的部分代码 function getSections () { const sidebar = fs.readFileSync(path.resolve(__dirname, 'docs/sidebar.js'), 'utf8'); return new Promise((resolve) => { walk.simple(acorn.parse(sidebar), { ObjectExpression(node) { if(node.properties[0].key.name == 'sections') { const value = node.properties[0].value; resolve(escodegen.generate({ type: 'ArrayExpression', elements: value.elements.map(item => { return { ...item, properties: item.properties.filter(item => { return item.key.value !== 'sections' }) } }) })) } } }) }) } // 使用方法: const sections = new Function(`return ${await getSections()}`)(); [ { 'title': '导航', 'path': 'nav' }, { 'title': '按钮', 'path': 'button' }, { 'title': '切换', 'path': 'transition' }, { 'title': '弹窗', 'path': 'dialog' }, { 'title': '整体效果', 'path': 'integrated' } ] 注意❗ 需要注意 escodegen.generate 返回的是 String,如果要以数组对象的方式使用需要转换为js对象。 扩展阅读 acorn-walk: 遍历语法树 estree: 节点类型