Browserify with require('fs')

Fre*_*kle 27 html5 require node.js html5-filesystem browserify

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

这有什么解决方法吗?我在stackoverlow和其他地方看到了一些建议,但似乎没有完全实现.

我实际上希望使用browserify为我教授的课程创建一个谷歌网络打包应用程序.

提前致谢.

sub*_*ack 44

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

var fs = require('fs');
var src = fs.readFileSync(__dirname + '/file.txt');
Run Code Online (Sandbox Code Playgroud)

然后做:

browserify -t brfs main.js > bundle.js
Run Code Online (Sandbox Code Playgroud)

并将在编译时src设置为内容file.txt.

  • 有趣的想法,但不能满足我的需求。 (2认同)

Ani*_*wal 16

如果要使用browserify运行文件系统,可以安装npm.

npm install browserify-fs 
Run Code Online (Sandbox Code Playgroud)

并且您可以在客户端访问fs对象.
谢谢

  • 我实际上安装了browserify-fs并且需要它但我仍然得到相同的错误,称为"fs.readFileSync不是函数" (4认同)

Jan*_*sen 10

那么浏览器应该使用哪个文件系统?HTML5文件系统与传统文件系统无法真正比​​较.它没有符号链接,只能在Web Workers外部异步访问.

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

  • 我想我至少会期望browserify会在浏览器化代码中留下注释,表明它不支持fs模块. (3认同)