我正在使用Browserify(使用browserify-middleware),如何require简单的文本文件,例如:
var myTmpl = require("myTmpl.txt");
我检查了stringify插件适用于browserify,但是文档中的代码在browserify V2下无法工作。
我正在使用Browserify(使用browserify-middleware),如何require简单的文本文件,例如:
var myTmpl = require("myTmpl.txt");
我检查了stringify插件适用于browserify,但是文档中的代码在browserify V2下无法工作。
require()
最适合用于 JavaScript 代码和 JSON 文件,以保持与 Node 的一致性,并提高您的代码对外部人员的可读性,因为外部人员期望 require()
的工作方式与 Node 相同。
如果要加载文本文件,建议使用brfs 转换。使用 brfs,通过调用 fs.readFileSync()
来保持与 Node 的一致性,但 brfs 不像 Node 那样进行同步IO,而是将文件内容内联到包中。
var src = fs.readFileSync(__dirname + '/file.txt');
变成
var src = "beep boop\n";
-t brfs
编译即可:browserify -t brfs main.js > bundle.js
关于为什么过度使用重载require()
是个坏主意的更多讨论:http://mattdesl.svbtle.com/browserify-vs-webpack
stringify:
https://github.com/JohnPostlethwait/stringify
这是作者的示例:
var bundle = browserify()
.transform(stringify(['.hjs', '.html', '.whatever']))
.add('my_app_main.js');
如果你真的想使用require()
,你可能需要看一下partialify:
my.txt
:
Hello, world!
index.js
:
alert( require( "my.txt" ) );
Browserify的配置位置:
var partialify = require( "partialify/custom" );
partialify.alsoAllow( "txt" );
bundle.add( "./index.js" );
bundle.transform( partialify );