Files
flying-hero 96f6318101 📦 添加虚拟环境和启动脚本
新增:
- backend/venv/ - Python 虚拟环境
- backend/start.sh - 启动脚本(使用虚拟环境)
- backend/requirements.txt - 依赖列表
- .gitignore - 忽略虚拟环境和缓存文件

说明:
- 每个项目使用独立虚拟环境
- 避免依赖冲突
- 启动脚本自动创建和激活虚拟环境
2026-04-04 18:29:02 +08:00

1.6 KiB

patchRequire(vol[, unixifyPaths[, Module]])

Patches Node's module module to use a given fs-like object vol for module loading.

  • vol - fs-like object
  • unixifyPaths (optional) - whether to convert Windows paths to unix style paths, defaults to false.
  • Module (optional) - a module to patch, defaults to require('module')

Monkey-patches the require function in Node, this way you can make Node.js to require modules from your custom filesystem.

It expects an object with three filesystem methods implemented that are needed for the require function to work.

let vol = {
    readFileSync: () => {},
    realpathSync: () => {},
    statSync: () => {},
};

If you want to make Node.js to require your files from memory, you don't need to implement those functions yourself, just use the memfs package:

import {vol} from 'memfs';
import {patchRequire} from 'fs-monkey';

vol.fromJSON({'/foo/bar.js': 'console.log("obi trice");'});
patchRequire(vol);
require('/foo/bar'); // obi trice

Now the require function will only load the files from the vol file system, but not from the actual filesystem on the disk.

If you want the require function to load modules from both file systems, use the unionfs package to combine both filesystems into a union:

import {vol} from 'memfs';
import {patchRequire} from 'fs-monkey';
import {ufs} from 'unionfs';
import * as fs from 'fs';

vol.fromJSON({'/foo/bar.js': 'console.log("obi trice");'});
ufs
    .use(vol)
    .use(fs);
patchRequire(ufs);
require('/foo/bar.js'); // obi trice