hai*_*mke 22 commonjs node.js backbone.js browserify
我使用browserify(使用browserify-middleware)我如何需要简单的文本文件,例如:
var myTmpl = require("myTmpl.txt");
Run Code Online (Sandbox Code Playgroud)
我为browserify购买了stringify插件,但文档中的代码不能与browserify V2一起使用
sub*_*ack 43
require()对于只是javascript代码和json文件来说,保持与节点的奇偶校验以及提高代码对期望require()以节点方式工作的外部人员的可读性是最好的.
请require()考虑使用brfs转换,而不是使用加载文本文件.使用brfs,您可以通过调用fs.readFileSync()来保持与节点的奇偶校验,但是不像在节点中那样执行同步IO,brfs会将文件内容内联到内部,因此
var src = fs.readFileSync(__dirname + '/file.txt');
Run Code Online (Sandbox Code Playgroud)
变
var src = "beep boop\n";
Run Code Online (Sandbox Code Playgroud)
在捆绑输出中.
只需编译-t brfs:
browserify -t brfs main.js > bundle.js
Run Code Online (Sandbox Code Playgroud)
关于为什么重载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');
Run Code Online (Sandbox Code Playgroud)
小智 5
如果你真的想使用require(),你可能想看看partialify:
my.txt:
Hello, world!
Run Code Online (Sandbox Code Playgroud)
index.js:
alert( require( "my.txt" ) );
Run Code Online (Sandbox Code Playgroud)
配置Browserify的位置:
var partialify = require( "partialify/custom" );
partialify.alsoAllow( "txt" );
bundle.add( "./index.js" );
bundle.transform( partialify );
Run Code Online (Sandbox Code Playgroud)
从理论上讲,你会得到一个"Hello,world!" 浏览器中的消息.
PS我自己没试过.
编辑:请注意,此解决方案违反了NodeJS兼容性 - 它仅在浏览器状态下工作,因为NodeJS不知道如何要求.txt文件.