推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
xiaoming1992

js 有没有类似于“虚拟文件系统”的库?

  •  
  •   xiaoming1992 · May 24, 2024 · 3079 views
    This topic created in 722 days ago, the information mentioned may be changed or developed.

    类似于

    class File {
      // ...
    }
    
    class Dir {
      // ...
    }
    
    // 用法类似于
    const root = new Dir(xxx)
    root.add(xxx)
    
    const file = new File(xxx)
    file.content = 'xxx'
    

    且实现上( api 能力)尽量类似真实的文件系统(但不是 fs 那种,因为并不存在真实的文件)


    对了,最好是浏览器环境

    13 replies    2024-09-11 13:13:01 +08:00
    lisxour
        1
    lisxour  
       May 24, 2024   ❤️ 1
    有见过支持 node 的,但是你想要支持浏览器是什么应用场景,你怎么持久化保存呢?
    xiaoyiyu
        2
    xiaoyiyu  
       May 24, 2024   ❤️ 1
    xiaoming1992
        3
    xiaoming1992  
    OP
       May 24, 2024 via Android
    @xiaoyiyu 不持久化,我只是上次看到有通过类似 shell 的形式访问 reddit 的,我就想做一个 v2sh
    accelerator1
        4
    accelerator1  
       May 24, 2024
    xiaoming1992
        5
    xiaoming1992  
    OP
       May 24, 2024 via Android
    @accelerator1 这个不是 fs 形式的,可能用起来不方便。

    谢谢大家,#2 的 memfs 就很合适了。我的分不多了,账号被降权,提个问贵得要死,回复不起了。。。
    xiaoyiyu
        6
    xiaoyiyu  
       May 24, 2024
    @xiaoming1992 memfs readme 底部有与他相似的库推荐,也可以按照对应的关键字查找
    zhy0216
        8
    zhy0216  
       May 24, 2024 via Android
    tsc 里面有 好像是独立的库
    ChefIsAwesome
        9
    ChefIsAwesome  
       May 24, 2024
    DOM 节点就是这么一棵树。访问上下左右,增删改查的方法都有。
    flyqie
        10
    flyqie  
       May 24, 2024 via Android
    @ChefIsAwesome #9

    你的意思是想让楼主去基于 dom 树模拟?

    略微有点复杂了,纯 js 就可以。
    money1991
        11
    money1991  
       May 24, 2024
    webassembly 啊,自带文件系统,完全兼容 unix
    ccbikai
        12
    ccbikai  
    PRO
       May 24, 2024
    ajan
        13
    ajan  
       Sep 11, 2024
    浏览器端的

    https://stuk.github.io/jszip/

    ```javascript
    var zip = new JSZip();
    zip.file("Hello.txt", "Hello World\n");
    var img = zip.folder("images");
    img.file("smile.gif", imgData, { base64: true });
    zip.generateAsync({type:"blob"}).then(function(content) {
    // see FileSaver.js
    saveAs(content, "example.zip");
    });
    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3042 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 06:46 · PVG 14:46 · LAX 23:46 · JFK 02:46
    ♥ Do have faith in what you're doing.