如果我在内存中以字符串的形式存储文件内容,而不将其写入磁盘,我将如何要求()一个文件?下面是一个例子:

// Load the file as a string
var strFileContents = fs.readFileSync( "./myUnalteredModule.js", 'utf8' );

// Do some stuff to the files contents
strFileContents[532] = '6';

// Load it as a node module (how would I do this?)
var loadedModule = require( doMagic(strFileContents) );

推荐答案

function requireFromString(src, filename) {
  var Module = module.constructor;
  var m = new Module();
  m._compile(src, filename);
  return m.exports;
}

console.log(requireFromString('module.exports = { test: 1}', ''));

看看module.js中的编译、扩展和加载

Node.js相关问答推荐

MongoDB-$Lookup未获得适当的结果

如何在MongoDB中更新嵌套数组

获取页面大小为10的所有文章,每篇文章填充一些所需的用户信息

如何使用NodeJS在mongodb中更新文档

在 puppeteer 中从 pdf 中删除 about:blank 和 date-time

Node.js 连接在查询完成之前终止

合并Shift对象数组以创建最终的排班表

如何使用Next.js/Node/TS正确地上传至S3

如何修复我的 NodeJS SSE 写入函数以在后续调用中更新 HTML?

bcrypt.compare 每次都返回 false

Typescript 正则表达式:过滤器返回空

将环境变量从 GitHub 操作传递到 json

来自 child_process.exec 的错误没有这样的设备或地址,管道有帮助.为什么?

JavaScript & Node - 将图像文件保存到服务器但无法查看

MERN 堆栈项目中的 React [create-react-app] 正在提供依赖项

Node js中向rest服务发送https请求的步骤

`npm install` 以Killed结尾

添加git信息到create-react-app

Node.js + Express:应用程序不会开始监听端口 80

如何在 NodeJs 中下载和解压缩内存中的 zip 文件?