在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对代码的解析。您可以在树中搜索您要查找的值,拉出子字符串。