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

时间:2013-05-24 16:31:45

标签: javascript node.js npm browserify

我真的无法理解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应该如何在浏览器中运行?

1 个答案:

答案 0 :(得分:5)

process.nextTick()之后只会进行回调 在浏览器中,使用setTimeout(func, 0)setImmediaterequestAnimationFrame()进行模拟。

__dirnamne__filename只是浏览器在编译时根据文件的原始路径注入的变量。