Shu*_*kar 5 javascript automation node.js
有一个test.js:
const add = (x,y) => {
return x+y;
}
const multiply = (x,y,z) => {
return x*y*z;
}
Run Code Online (Sandbox Code Playgroud)
我想从index.js读取此test.js并打印其所有函数名称和参数;
const fs = require("fs");
let file = fs.readFileSync("./test.js", "utf8");
let functionArg = "Do some operations"
console.log(functionArg)
//Result:
// add : [x,y]
// multiply : [x,y,z]
Run Code Online (Sandbox Code Playgroud)
没有module.exports。
是否有可能读取js文件并返回其所有功能及其参数。
您可以借助esprima等 JavaScript 解析器来获取函数及其参数。
const fs = require("fs");
const esprima = require('esprima');
let file = fs.readFileSync("./test.js", "utf8");
let functionArg = esprima.parseScript(file);
functionArg.body.forEach(el => {
let variableDeclarator = el.declarations[0]
let params = []
variableDeclarator.init.params.forEach(arg => {
params.push(arg.name)
})
console.log(variableDeclarator.id.name, ' : ', [params.join()])
})
//Result:
// add : [ 'x,y' ]
// multiply : [ 'x,y,z' ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |