8

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

browserify做的更多:

许多不做 IO 的 npm 模块在被浏览器化后才可以工作。其他人需要更多的工作。

许多节点内置模块已被包装以在浏览器中工作,但仅当您明确require()或使用它们的功能时。

当您 require() 任何这些模块时,您将获得一个特定于浏览器的 shim。

然后再次:

  • process.nextTick()、__dirname 和 __filename node-isms 工作
  • 获取节点核心库事件、流、路径、url、assert、buffer、util、querystring、http、vm 和 crypto 的浏览器版本(当您需要()它们时)

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

4

1 回答 1

5

process.nextTick()稍后只需运行回调。
在浏览器中,这是使用setTimeout(func, 0)setImmediate或来模拟的requestAnimationFrame()

__dirnamne并且__filename只是 browserify 在编译时根据文件的原始路径注入的变量。

于 2013-05-24T16:33:35.777 回答