Amber Smalltalk - 创建单个.js文件以进行部署

Joh*_*nyT 9 deployment smalltalk amber-smalltalk

我已经看过这个话题了几次,但我认为我没有看到任何确定的解决方案.

我已经尝试了将所有我的Foo.deploy.js,Bar.deploy.js组合成单个.js文件的路由,然后将其包含在loadAmber()调用中.这/似乎/工作得相当好,但大部分下载大小仍然来自Amber内部.

在我的申请中,规模最大的罪犯是:

  • 200K - jQuery UI
  • 95K - 内核集合
  • 90K - jQuery
  • 87K - 内核对象
  • 50K - 画布
  • 40K - MyApp
  • 20K - 内核类

我不能对jQuery UI的大小做太多,但我可以做很多关于Amber核心的大小,以及获取它们所需的HTTP请求的数量.唯一的问题是我无法弄清楚如何告诉Amber不要自动获取Kernel-Objects.deploy.js等.

有没有人设法将他们的整个Amber javascript成功打包成一个.js文件?

  • R.泰勒克罗伊

代码:http://github.com/rtyler Chatter:http://twitter.com/agentdero

Joh*_*nyT 6

Amber编译器可以做很多事情:

http://github.com/NicolasPetton/amber/blob/master/bin/amberc#L18-90

以下命令将编译jQuery和列出的包并生成amber-deploy.js:

./bin/amberc -l js/lib/jQuery/jquery-1.6.4.min,Kernel-Objects.deploy,Kernel-Classes.deploy,Kernel-Methods.deploy,Kernel-Collections.deploy,Kernel-Exceptions.deploy,Canvas.deploy amber-deploy
Run Code Online (Sandbox Code Playgroud)

请注意列出的文件名之间缺少空格.

另外 - 您可以下载Google Closure编译器http://closure-compiler.googlecode.com/files/compiler-latest.zip并将其放在您的主目录(〜/ compiler.jar)中然后运行(注意-O选项):

./bin/amberc -O -l js/lib/jQuery/jquery-1.6.4.min,Kernel-Objects.deploy,Kernel-Classes.deploy,Kernel-Methods.deploy,Kernel-Collections.deploy,Kernel-Exceptions.deploy,Canvas.deploy amber-deploy
Run Code Online (Sandbox Code Playgroud)

然后在你的HTML中你可以放:

<script src='amber-deploy.js'></script>
Run Code Online (Sandbox Code Playgroud)