【问题标题】:Read and operate on a TS file using node js使用node js读取和操作一个TS文件
【发布时间】:2020-04-11 04:53:51
【问题描述】:

我正在创建一个 npm 库,我需要在其中读取从命令行调用我的库函数的文件夹的文件,然后对这些文件进行操作。

操作是指检查变量是否存在,函数是否存在,修改变量,函数等。

文件将是 Typescript 文件。

任何关于如何进行的帮助都会很棒。

【问题讨论】:

    标签: node.js typescript npm


    【解决方案1】:

    似乎您需要某种AST 解析器,例如Esprimababel-parser。这些工具可以解析JS/TS文件的内容,构建抽象语法树,可以遍历、修改、转换回源代码。

    Babel 工具集中有很多有用的工具可以简化这些操作。例如,babel-traverse 简化了对目标语句或表达式的搜索,babel-types 有助于匹配 AST 节点的类型,babel-generator 从 AST 生成源代码。

    【讨论】:

      【解决方案2】:

      如果不运行文件,将很难获得这些答案。

      所以最好的方法可能是像往常一样导入文件,看看运行这些文件有什么副作用。例如,您可以检查文件是否导出了任何内容。

      如果这不能解决您的问题,您将不得不解析文件。最好的方法可能是使用 typescript 编译器本身:

      https://github.com/microsoft/TypeScript/wiki/Using-the-Compiler-API

      【讨论】:

      • 谢谢埃弗特。由于所有 npm.libraries 都进入节点模块文件夹,因此在我的库中导入用户文件并对其进行处理不是一种不好的做法吗?
      • @RohanAgarwal 对我来说很难说这是否是一种不好的做法,因为我不知道您的用例是什么。如果您正在尝试进行一些静态分析,那么您正在做的事情是有意义的,但如果这不是开发人员实用程序,我会质疑您是否在做正确的事情。我认为这个问题超出了堆栈溢出的范围,但是如果您想进行对话,请随时在 Twitter 上私信我。
      猜你喜欢
      • 2017-05-23
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多