Browserify with require('fs')

我试图在使用fs对象的文件上使用browserify。 当我浏览它时,对require('fs')的调用不会被转换并require返回{}

有没有解决方法? 我已经看到了关于stackoverlow和其他地方的一些build议,但没有一个似乎完全实现。

我其实希望创build一个谷歌networking打包的应用程序,使用browserify为我教的课程。

提前致谢。

       

网上收集的解决方案 "Browserify with require('fs')"

浏览器应该使用哪个文件系统? HTML5文件系统与传统文件系统没有真正的可比性。 它没有符号链接,只能在Web Workers之外asynchronous访问。

所以答案是:自己编写一个抽象层,在Node.js中运行时可以依赖fs模块,而在浏览器中运行时编写HTML5 FS API。 差异太大,不能为您浏览翻译。

如果要从fs.readFileSync()调用内联文件内容,可以使用brfs :

 var fs = require('fs'); var src = fs.readFileSync(__dirname + '/file.txt'); 

然后做:

 browserify -t brfs main.js > bundle.js 

在编译时src将被设置为file.txt的内容。

如果你想用browserify运行文件系统,你可以安装npm。

 npm install browserify-fs 

你可以在客户端访问fs对象。
谢谢

对于Google上的任何人,我有更好的运气来进行stringify转换。

https://github.com/JohnPostlethwait/stringify

这里的答案令人沮丧(尽pipe不是不受欢迎)我将模板作为string导入到我的组件中,以保存templateUrl购买的HTTP请求,并将它们保留在Javascript文件之外。

由于某些原因, brfs不能很好地和babel一起玩,并且有很多警告可以让你工作。

我无法使browserify-fs工作。

然而,在findstringify转换之后,它就像。

 import template from '../template.html' const definition = { template } component.directive('myDirective', () => definition) 

翻译为ES5用户:

 var template = require('../template.html') component.directive('myDirective', function() { return { template: template } })