node.js - 如何将文件复制为模板,向其中注入(inject)值,到不同的文件夹?

标签 node.js yeoman fs yeoman-generator

几周前,我在 Yeoman 生成器中使用了这个库 mem-fs-editor ( https://github.com/sboudrias/mem-fs-editor )。它工作得很好,但现在我尝试在不同的范围内再次使用它,但我无能为力。 Obs:我使用它是因为这是 Yeoman 提供的用于处理文件系统的库。

在 Yeoman Generators 中,我们可以从模板文件夹复制文件,传递要注入(inject)代码的值到不同的文件夹。这正是我所需要的,但这次我不能使用 Yeoman。

我尝试了在 Yo Generator 中使用的相同代码,但它不起作用。所以我不确定 mem-fs 是如何工作的。没有抛出任何错误,甚至项目作者提供的代码对我来说也不起作用。

我尝试了这个(以及 copyTpl 的其他一些方法)但没有成功

var memFs = require('mem-fs');
var editor = require('mem-fs-editor');

var store = memFs.create();
var fs = editor.create(store);

console.log(fs.write('./somefile.js', 'var a = 1;'));

有人知道它是如何工作的,或者我还能做些什么来实现这一点?

最佳答案

mem-fs-editor 作者在这里。

mem-fs 代表内存文件系统。您创建的所有文件都存储在内存中,并且在调用之前不会写入磁盘:

editor.commit(callback);

Yeoman 会自动为您完成此操作。 Yeoman 就是通过这种方式将每个文件更改碰撞在一起,然后只能提示一次文件冲突(而不是每次写入单个文件时)。

关于node.js - 如何将文件复制为模板,向其中注入(inject)值,到不同的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41008042/

相关文章:

javascript - 如何从 Javascript 或 Nodejs 执行 Python 脚本?

Yeoman 子生成器 : using answers to prompts from main generator

javascript - 使用 grunt 连接所有 vendor 的 javascript 文件?

javascript - Node.js fs Cheerio 读写多个文件

ruby-on-rails - 等价于 Node.js 的 Rails 控制台

javascript - Node.js:导出类/原型(prototype)与实例

javascript - 如何将回调作为变量传递给 puppeteer 中的 page.evaluate?

windows - Yeoman 命令无法在 Windows 7 中运行

node.js - 在ElectronJS(Asar)中编写JSON文件

node.js - nodejs createReadStream 空文件