如何用browserify“要求”文本文件?
我正在使用browserify(使用browserify-middleware)我怎样才能要求简单的文本文件,如:
var myTmpl = require("myTmpl.txt");
我cherif stringify插件的browserify,但在文档中的代码不工作与browserify V2
require()
对于javascript代码和json文件来说是最好的,它可以保持与节点的奇偶性,并且提高代码的可读性,这些代码可以让require()
在节点中工作。
不要使用require()
来加载文本文件,可以考虑使用brfs变换。 使用brfs,通过调用fs.readFileSync()
来维护与节点的奇偶校验,而不是像在节点中那样执行同步IO,brfs会将文件内容内联到内部。
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()
,你可能想看看部分:
my.txt
:
Hello, world!
index.js
:
alert( require( "my.txt" ) );
在哪里configurationBrowserify:
var partialify = require( "partialify/custom" ); partialify.alsoAllow( "txt" ); bundle.add( "./index.js" ); bundle.transform( partialify );
理论上你会得到一个“你好,世界!” 消息在浏览器中。
PS我没有尝试过这个自己。
编辑 :请注意,这个解决scheme打破了NodeJS兼容性 – 它只能在browserified状态下工作,因为NodeJS不知道如何需要.txt
文件。