3

带链轮:

//= require 

...在 application.js 中似乎在<script src=...>我的 HTML 的头部添加了一个标签。但是,使用browserify-rails

window.mymodule = require('mymodule'); // mymodule is a dependency in package.json 

我没有<script>看到mymodule. 但是我能够使用内部定义的代码mymodule。browserify 在这里做什么?

4

1 回答 1

2

简而言之,Browserify 将每个模块包装在一个函数中,为模块提供自己的作用域。这使您不导出的内容对模块保持私有。这些功能中的每一个都存储在地图中,以便以后可以查找它们require

这是一篇很好的文章,从高层次上解释了它是如何工作的:http: //benclinkinbeard.com/posts/how-browserify-works/

Sprockets 只包含全局范围内清单中的所有内容。在开发中,每个脚本的文件都包含在内。在生产中,脚本都是串联和缩小的,但都是全局的。

于 2015-10-29T14:17:30.490 回答