美文网首页
[nodejs] mem-fs-editor不起作用

[nodejs] mem-fs-editor不起作用

作者: 薯条你哪里跑 | 来源:发表于2019-09-27 10:31 被阅读0次

    背景:

    最近要给cli工具(webpack nodejs)进行升级,添加的新功能需要嵌入ejs模板,打算使用mem-fs 和 mem-fs-editor来进行支持;

    过程:

    进行安装:

    npm install  mem-fs
    npm install  mem-fs-editor
    // 或
    cnpm install  mem-fs --save
    cnpm install  mem-fs-editor  --save
    // 不加--save  不会被添加到package.json中 不造啥情况
    

    测试:

    const memFs = require('mem-fs');
    const memFsEditor = require('mem-fs-editor');
    const store = memFs.create();
    const tplfs = memFsEditor.create(store);
    tplfs.copy('./somefile.js', './qwe.js');
    

    npm run start 走起~~查看复制出来的qwe文件。
    。。。。。。
    。。。。。
    。。。。
    。。。
    。。

    文件呢??咋 ! 没 ! 反 ! 应 !

    我copy出来的文件呢?!?!?!

    查查查。。。查的我快崩溃了,都是搬得官方那一套使用方法,翻了波源码也没翻出所以然。

    解决:

    也不卖关子了,在崩溃的前一秒找到了答案;原因是copy等指令只会在内存而不是硬盘中,生成相应的文件需要tplfs.commit(callback); 手动去调一下才可以在硬盘中生成;

    我用的是webpack,如果是用的Yeoman的话就不会有这个问题,因为内部就会自动完成commit的工作啦;

    stackoverflow
    mem-fs stands for memory file-system. All the files you creates are stored in memory and won't get written to disk until you call: editor.commit(callback);
    Yeoman does that automatically for you. It is this way with Yeoman to collide every file changes together and then being able to only prompt for file conflicts once (rather than everytime a single file is being written to).

    相关文章

      网友评论

          本文标题:[nodejs] mem-fs-editor不起作用

          本文链接:https://www.haomeiwen.com/subject/uivwectx.html