browserify如何使Node.js模块在浏览器中工作?

gre*_*emo 8 javascript node.js npm browserify

我真的无法理解背后的一些工作browserify.使用纯JavaScript模块时,将其转换为浏览器代码似乎"很容易",即使有很多依赖项.

browserify做得更多:

许多不执行IO的npm模块在浏览后会正常工作.其他人需要更多的工作

许多节点内置模块已被包装在浏览器中,但只有在您明确require()或使用其功能时才能使用.

当您需要()任何这些模块时,您将获得特定于浏览器的垫片.

然后再次:

  • process.nextTick(),__ dirname和__filename node-isms工作
  • 当你需要()时,获取节点核心库事件,流,路径,url,断言,缓冲区,util,querystring,http,vm和crypto的浏览器版本

那么...... process.nextTick(),__dirname在浏览器中......甚至http?这对我来说没有意义...... __dirname应该如何在浏览器中工作?

SLa*_*aks 5

process.nextTick()只是稍后运行一个回调.
在浏览器中,这是使用模拟setTimeout(func, 0),setImmediaterequestAnimationFrame().

__dirnamne并且__filename只是浏览器在编译时根据文件的原始路径注入的变量.