我有一个具有以下 JavaScript 文件结构的 rails 应用程序:
- assests/javascripts
- /application
- module1.js
.
.
.
- moduleN.js
- application.js
每个文件如下所示:
var module1 = (function(){
//Lots of code
return {
//Public stuff
}
})();
模块需要相互访问,因此会暴露一些东西。
应用程序.js
//= require_tree ./application
我想知道是否有办法将所有代码编译成匿名函数;就像是:
(function(){
//= require_tree ./application
})();
这显然行不通。我目前正在做的是:
应用程序.js
//= require ./begin.js
//= require_tree ./application
//= require ./end.js
begin.js是 just(function(){
而end.js是})();
.
不是最整洁的解决方案。
这不仅消除了全局变量,而且允许编译器将它们的名称更改为更短的名称,以获得更轻量级的代码和更不可读。我关心代码机密性,不想公开模块名称,使逆向工程更加困难。