我真的无法理解browserify
背后的一些工作。使用纯JavaScript模块时,将其转换为浏览器代码似乎“很容易”,即使有很多依赖项。
但是browserify
做得更多:
许多没有执行IO的npm模块只会在工作之后才能工作 browserified。其他人则需要更多的工作。
许多节点内置模块已被包装在浏览器中工作, 但只有在您明确
require()
或使用其功能时才会使用。当你需要()任何这些模块时,你会得到一个 浏览器特定的垫片。
再次:
- process.nextTick(),__ dirname和__filename node-isms work
- 获取节点核心库事件,流,路径,网址的浏览器版本, assert,buffer,util,querystring,http,vm和crypto require()他们
所以... process.nextTick()
,__dirname
在浏览器中...甚至http
?这对我来说没有意义...... __dirname
应该如何在浏览器中运行?
答案 0 :(得分:5)
process.nextTick()
之后只会进行回调
在浏览器中,使用setTimeout(func, 0)
,setImmediate
或requestAnimationFrame()
进行模拟。
__dirnamne
和__filename
只是浏览器在编译时根据文件的原始路径注入的变量。