gpt4 book ai didi

javascript - 在蓝图使用期间解析 Ember 模型文件

转载 作者:太空宇宙 更新时间:2023-11-04 15:32:50 24 4
gpt4 key购买 nike

我正在编写一个 Ember 自定义蓝图,该蓝图根据传递给 ember g <blueprint> <modelname> 的 Ember 数据模型输出不同的组件字段。命令。

但是,尝试将模型文件解析为 Javascript 很困难。原因是我们在 CommonJS Node 环境中运行并尝试导入 ES6 模块。即使我们使用从npm导入的ES6解析库,那么我们就无法从此上下文解析模型的导入路径查找。

下一个方法是尝试将生成的 Javascript 文件导入到 dist 文件夹中(例如 dist/my-first-blueprint.js )。这是模块的 AMD 结构,并且没有现成的 AMD npm模块似乎也允许轻松使用该文件。

大概有代码添加到 dist/vendor.js允许 Ember Resolver 找到正确引用的模块。然而,这就是我对 Broccoli 构建链和 Ember 内部结构的了解让我失败的地方。

最后一个选项是使用模式匹配将 Javascript 文件解析为文本。通过混合、不同根类和其他变体的组合,这绝对是不平凡的,并且已被推迟到单独的蓝图。

有谁知道蓝图 index.js 中关于如何实现的任何想法或提示吗?文件中我可以导入 Ember 数据模型并确定其属性吗?

最佳答案

您可以使用recast解析ast树。

var fs = require('fs-extra');
var fileName = <path-to-model> ;
var source = fs.readFileSync(fileName, 'utf-8');
var recast = require('recast');
var ast = recast.parse(source);

这段代码可以解析文件。获得 ast 后,遍历它以获取模型的属性。您可以使用ast traversal api .

关于javascript - 在蓝图使用期间解析 Ember 模型文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44657912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com