如何读取js文件并使用nodejs将默认导出模块解析为JSON



在Node.js中,我希望能够读取包含ES模块语法的sample.js文件并解析默认导出。

sample.js

import foo from "foo";
const bar = [
{
name: "Homer",
},
{
name: "Marge",
},
{
name: "Bart",
},
{
name: "Lisa",
},
{
name: "Maggie",
},
];
export const addOne = (num) => num + 1;
export default bar;

到目前为止,我的node.js脚本只是读取文件内容并将其输出到console.log

index.js

const fs = require("fs");
fs.readFile("./sample.js", "utf8", (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
// how can I parse the default export from data?
});

如果我可以在读取文件后以某种方式获得字符串[{"name":"Homer"},{"name":"Marge"},{"name":"Bart"},{"name":"Lisa"},{"name":"Maggie"}],那么我可以简单地执行JSON.parse并获得所需的数据。但这似乎不是一项琐碎的任务。如何读取原始js文件并将默认导出解析为JSON?

您可以简单地进行

import data from './sample.js';
console.log(data);

此外,请确保在package.json中有以下行:"type": "module"

如果你不能按照其他评论者的建议去做是有原因的,你可以使用像babel或acorn这样的ast生成器。https://astexplorer.net/#/gist/b6f15acb88afbf6b6ee1426e4d44fd15/a5e2721f04af041fc704e8d4fa9cefe77e9b872a显示了acorn对代码的解析。您可以在树中搜索您要查找的值,拉出子字符串。

最新更新