我正在使用browserify(使用browserify-middleware) 我怎么能要求简单的文本文件,如:
var myTmpl = require("myTmpl.txt");
我为浏览器化了stringify插件,但文档中的代码不能与browserify V2一起使用
答案 0 :(得分:42)
require()
非常适合只使用javascript代码和json文件来维护与节点的奇偶校验,并提高代码对期望require()
以节点方式工作的外部人员的可读性。
请考虑使用brfs转换,而不是使用require()
加载文本文件。使用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
答案 1 :(得分:9)
<强>字符串化强>:
https://github.com/JohnPostlethwait/stringify
以下作者的例子:
var bundle = browserify()
.transform(stringify(['.hjs', '.html', '.whatever']))
.add('my_app_main.js');
答案 2 :(得分:5)
如果您真的想使用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 );
从理论上讲,你会得到一个'#Hello; world!&#34;浏览器中的消息 附:我自己没试过这个。
编辑:请注意,此解决方案会破坏NodeJS的兼容性 - 它只能在浏览器状态下运行,因为NodeJS不知道如何需要.txt
个文件。