Browserify with require('fs')
我试图在使用fs对象的文件上使用browserify。 当我对其进行浏览器化时,对
有什么解决方法吗? 我已经在stackoverlow和其他地方看到了一些建议,但似乎没有一个完全实现。
我实际上希望为我教的课使用browserify创建一个Google Web打包的应用程序。
提前致谢。
如果要从
1 2 | var fs = require('fs'); var src = fs.readFileSync(__dirname + '/file.txt'); |
然后做:
1 | browserify -t brfs main.js > bundle.js |
和
如果要使用browserify运行文件系统,则可以安装npm。
1 | npm install browserify-fs |
您可以在客户端访问fs对象。
谢谢
浏览器应该使用哪个文件系统? HTML5文件系统实际上无法与传统文件系统相比。它没有符号链接,只能在Web Workers外部异步访问。
因此答案是:自己编写一个抽象层,在Node.js中运行时可以依赖fs模块,而在浏览器中运行时可以依赖HTML5 FS API。差异太大,无法使用browserify进行翻译。
是否有必要使用require(fs),您始终可以使用html5文件阅读器api来读取javascript文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | window.onload = function() { var fileInput1 = document.getElementById('fileInput'); if (fileInput1){ fileInput1.addEventListener('change', function(e) { var file = fileInput1.files[0]; var textType = /text.*/; if (file.type.match(textType)) { var reader = new FileReader(); reader.onload = function(e) { console.log(reader.result); } reader.readAsText(file); } }); } } |
您还必须在html端插入输入文件。
对于使用Google的人来说,使用Stringify转换要好得多。
https://github.com/JohnPostlethwait/stringify
这里的答案令人沮丧(尽管并非不受欢迎),我正在将模板作为字符串导入到组件中,以保存由
出于某些原因,
我根本无法使用
但是,在找到
1 2 3 4 5 | import template from '../template.html' const definition = { template } component.directive('myDirective', () => definition) |
针对ES5用户的翻译:
1 2 3 4 5 6 7 | var template = require('../template.html') component.directive('myDirective', function() { return { template: template } }) |