如何用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文件。