Answers:
如果是针对(少数)特定扩展名的,则可以添加自己的require.extensions
处理程序:
var fs = require('fs');
require.extensions['.txt'] = function (module, filename) {
module.exports = fs.readFileSync(filename, 'utf8');
};
var words = require("./words.txt");
console.log(typeof words); // string
否则,您可以fs.readFile
与require.resolve
:
var fs = require('fs');
function readModuleFile(path, callback) {
try {
var filename = require.resolve(path);
fs.readFile(filename, 'utf8', callback);
} catch (e) {
callback(e);
}
}
readModuleFile('./words.txt', function (err, words) {
console.log(words);
});
Deprecated in the past
但是Since the module system is locked, this feature will probably never go away. However, it may have subtle bugs and complexities that are best left untouched.
要将CSS文件读取为String,请使用此代码。它适用于.txt
。
const fs = require('fs')
const path = require('path')
const css = fs.readFileSync(path.resolve(__dirname, 'email.css'), 'utf8')
ES6:
import fs from 'fs'
import path from 'path'
let css = fs.readFileSync(path.resolve(__dirname, 'email.css'), 'utf8')
您将必须使用模块中的readFile
功能filesystem
。
您可以同时使用node.js和TypeScript要求.json文件。那是唯一支持required()的适合序列化文本的格式。您可以使用编译时工具将文件打包到json中,例如https://github.com/cancerberoSgx/fs-to-json
所选答案已弃用,不再建议使用。NodeJS文档建议了其他方法,例如:
通过其他Node.js程序加载模块
但它不再扩展。
您可以使用一个非常简单的库,如下所示:require-text
或自己实现(例如从上面的包中:)
var fs = require('fs'); module.exports = function(name, require) { return fs.readFileSync(require.resolve(name)).toString(); };
const { string } = require('words.js');
wherewords.js
containsmodule.exports = { string: 'whatever' };