Skip to content

Commit 980ad07

Browse files
committed
Improve addons optimization
Add namespace codebox for require in addons
1 parent d8c9497 commit 980ad07

File tree

22 files changed

+114
-82
lines changed

22 files changed

+114
-82
lines changed

addons/editor/client.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ define([
22
"views/tab",
33
"ace/ace"
44
], function(EditorTab, ace) {
5-
var $ = require("jQuery");
6-
var commands = require("core/commands");
7-
var tabs = require("utils/tabs");
8-
var settings = require("utils/settings");
9-
var config = require("config");
5+
var $ = codebox.require("jQuery");
6+
var commands = codebox.require("core/commands");
7+
var tabs = codebox.require("utils/tabs");
8+
var settings = codebox.require("utils/settings");
9+
var config = codebox.require("config");
1010

1111
// Configure ace
1212
// ace version used is the content of https://github.com/ajaxorg/ace/tree/master/lib/ace

addons/editor/views/base.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
define([], function() {
2-
var _ = require("underscore");
3-
var $ = require("jQuery");
4-
var hr = require("hr/hr");
5-
var Tab = require("views/tabs/base");
6-
var File = require("models/file");
7-
var box = require("core/box");
2+
var _ = codebox.require("underscore");
3+
var $ = codebox.require("jQuery");
4+
var hr = codebox.require("hr/hr");
5+
var Tab = codebox.require("views/tabs/base");
6+
var File = codebox.require("models/file");
7+
var box = codebox.require("core/box");
88

99
var FilesBaseView = hr.View.extend({
1010
defaults: {

addons/editor/views/directory.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ define([
22
"views/base",
33
"less!stylesheets/directory.less"
44
], function(FilesBaseView) {
5-
var _ = require("underscore");
6-
var $ = require("jQuery");
7-
var hr = require("hr/hr");
8-
var Uploader = require("utils/uploader");
9-
var Dialogs = require("utils/dialogs");
5+
var _ = codebox.require("underscore");
6+
var $ = codebox.require("jQuery");
7+
var hr = codebox.require("hr/hr");
8+
var Uploader = codebox.require("utils/uploader");
9+
var Dialogs = codebox.require("utils/dialogs");
1010

1111
var FilesDirectoryView = FilesBaseView.extend({
1212
className: "editor-files-directory",

addons/editor/views/editor.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
define([
22
"ace/ace"
33
], function(ace) {
4-
var _ = require("underscore");
5-
var $ = require("jQuery");
6-
var hr = require("hr/hr");
7-
var Dialogs = require("utils/dialogs");
8-
var FileSync = require("utils/filesync");
9-
var user = require("core/user");
10-
var config = require("config");
4+
var _ = codebox.require("underscore");
5+
var $ = codebox.require("jQuery");
6+
var hr = codebox.require("hr/hr");
7+
var Dialogs = codebox.require("utils/dialogs");
8+
var FileSync = codebox.require("utils/filesync");
9+
var user = codebox.require("core/user");
10+
var config = codebox.require("config");
1111

1212
var logging = hr.Logger.addNamespace("editor");
1313
var settings = user.settings("editor");

addons/editor/views/file.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ define([
33
"views/editor",
44
"less!stylesheets/file.less"
55
], function(FilesBaseView, EditorView) {
6-
var _ = require("underscore");
7-
var $ = require("jQuery");
8-
var hr = require("hr/hr");
9-
var Dialogs = require("utils/dialogs");
6+
var _ = codebox.require("underscore");
7+
var $ = codebox.require("jQuery");
8+
var hr = codebox.require("hr/hr");
9+
var Dialogs = codebox.require("utils/dialogs");
1010

1111
var FileEditorView = FilesBaseView.extend({
1212
className: "editor-files-editor",

addons/editor/views/tab.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ define([
33
"views/file",
44
"less!stylesheets/tab.less"
55
], function(FilesDirectoryView, FileEditorView) {
6-
var _ = require("underscore");
7-
var $ = require("jQuery");
8-
var hr = require("hr/hr");
9-
var Tab = require("views/tabs/base")
10-
var box = require("core/box");
11-
var File = require("models/file");
6+
var _ = codebox.require("underscore");
7+
var $ = codebox.require("jQuery");
8+
var hr = codebox.require("hr/hr");
9+
var Tab = codebox.require("views/tabs/base")
10+
var box = codebox.require("core/box");
11+
var File = codebox.require("models/file");
1212

1313
var EditorTab = Tab.extend({
1414
className: Tab.prototype.className+ " addon-editor-tab",

addons/manager/client.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
define(["views/dialog"], function(InstallerDialog) {
2-
var commands = require("core/commands");
3-
var app = require("core/app");
4-
var dialogs = require("utils/dialogs");
5-
var settings = require("utils/settings");
2+
var commands = codebox.require("core/commands");
3+
var app = codebox.require("core/app");
4+
var dialogs = codebox.require("utils/dialogs");
5+
var settings = codebox.require("utils/settings");
66

77
// Add settings
88
settings.add({

addons/manager/collections/addons.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
define([
22
"models/addon"
33
], function(Addon) {
4-
var Q = require("q");
5-
var hr = require("hr/hr");
6-
var _ = require("underscore");
7-
var user = require("core/user");
8-
var addons = require("core/addons");
4+
var Q = codebox.require("q");
5+
var hr = codebox.require("hr/hr");
6+
var _ = codebox.require("underscore");
7+
var user = codebox.require("core/user");
8+
var addons = codebox.require("core/addons");
99

1010
var Addons = hr.Collection.extend({
1111
model: Addon,
@@ -27,7 +27,6 @@ define([
2727

2828
return hr.Requests.getJSON(user.settings("manager").get("registry")+"/api/addons?limit=1000&callback=?").then(function(index) {
2929
that._index = index;
30-
console.log("addons", index);
3130
hr.Cache.set("addons", user.settings("manager").get("registry"), that._index, 60*60);
3231

3332
return Q(that._index);

addons/manager/models/addon.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
define([], function() {
2-
var hr = require("hr/hr");
3-
var addons = require("core/addons");
2+
var hr = codebox.require("hr/hr");
3+
var addons = codebox.require("core/addons");
44

55
var Addon = hr.Model.extend({
66
defaults: {

addons/manager/views/addons.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ define([
22
'collections/addons',
33
'less!stylesheets/addons'
44
], function(Addons) {
5-
var hr = require("hr/hr");
6-
var _ = require("underscore");
5+
var hr = codebox.require("hr/hr");
6+
var _ = codebox.require("underscore");
77

88
var AddonItem = hr.List.Item.extend({
99
className: "addon-item",

addons/manager/views/dialog.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
define([
22
"views/addons"
33
], function(AddonsList) {
4-
var $ = require("jQuery");
5-
var DialogView = require("views/dialogs/base");
6-
var dialogs = require("utils/dialogs");
7-
var addons = require("core/addons");
4+
var $ = codebox.require("jQuery");
5+
var DialogView = codebox.require("views/dialogs/base");
6+
var dialogs = codebox.require("utils/dialogs");
7+
var addons = codebox.require("core/addons");
88

99
var InstallerDialog = DialogView.extend({
1010
className: "addon-manager-dialog modal fade",

addons/monitor/client.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
define([
22
"views/tab"
33
], function(MonitorTab) {
4-
var commands = require("core/commands");
5-
var tabs = require("utils/tabs");
4+
var commands = codebox.require("core/commands");
5+
var tabs = codebox.require("utils/tabs");
66

77
// Add opening command
88
commands.register("monitor.open", {

addons/monitor/views/logs.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ define([
22
"collections/logs",
33
"less!stylesheets/logs.less"
44
], function(Logs) {
5-
var _ = require("underscore");
6-
var $ = require("jQuery");
7-
var hr = require("hr/hr");
8-
var Tab = require("views/tabs/base")
9-
var box = require("core/box");
5+
var _ = codebox.require("underscore");
6+
var $ = codebox.require("jQuery");
7+
var hr = codebox.require("hr/hr");
8+
var Tab = codebox.require("views/tabs/base")
9+
var box = codebox.require("core/box");
1010

1111
// List Item View
1212
var LogItem = hr.List.Item.extend({

addons/monitor/views/tab.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
define([
22
"views/logs"
33
], function(LogsList) {
4-
var _ = require("underscore");
5-
var $ = require("jQuery");
6-
var hr = require("hr/hr");
7-
var Tab = require("views/tabs/base")
8-
var box = require("core/box");
4+
var _ = codebox.require("underscore");
5+
var $ = codebox.require("jQuery");
6+
var hr = codebox.require("hr/hr");
7+
var Tab = codebox.require("views/tabs/base")
8+
var box = codebox.require("core/box");
99

1010
var MonitorTab = Tab.extend({
1111
templateLoader: "addon.monitor.templates",

addons/settings/client.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
define(["views/dialog"], function(SettingsDialog) {
2-
var commands = require("core/commands");
3-
var app = require("core/app");
4-
var dialogs = require("utils/dialogs");
2+
var commands = codebox.require("core/commands");
3+
var app = codebox.require("core/app");
4+
var dialogs = codebox.require("utils/dialogs");
55

66
// Add opening command
77
commands.register("addons.settings.open", {

addons/settings/views/dialog.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
define([
22
"less!stylesheets/dialog.less"
33
], function() {
4-
var _ = require("underscore");
5-
var DialogView = require("views/dialogs/base");
6-
var settings = require("utils/settings");
4+
var _ = codebox.require("underscore");
5+
var DialogView = codebox.require("views/dialogs/base");
6+
var settings = codebox.require("utils/settings");
77

88
var SettingsDialog = DialogView.extend({
99
className: "addon-settings-dialog modal fade",

addons/terminal/client.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
define([
22
"views/tab"
33
], function(TerminalTab) {
4-
var commands = require("core/commands");
5-
var tabs = require("utils/tabs");
4+
var commands = codebox.require("core/commands");
5+
var tabs = codebox.require("utils/tabs");
66

77
// Add opening command
88
commands.register("terminal.open", {

addons/terminal/views/tab.js

+5-7
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ define([
22
"vendors/term",
33
"less!stylesheets/tab.less"
44
], function() {
5-
var _ = require("underscore");
6-
var $ = require("jQuery");
7-
var hr = require("hr/hr");
8-
var Tab = require("views/tabs/base")
9-
var box = require("core/box");
5+
var _ = codebox.require("underscore");
6+
var $ = codebox.require("jQuery");
7+
var hr = codebox.require("hr/hr");
8+
var Tab = codebox.require("views/tabs/base")
9+
var box = codebox.require("core/box");
1010

1111
var TerminalTab = Tab.extend({
1212
className: Tab.prototype.className+ " addon-terminal-tab",
@@ -125,11 +125,9 @@ define([
125125
if (w == this.term_w && h == this.term_h) {
126126
return this;
127127
}
128-
console.log("resize to "+w+":"+h);
129128
this.term_w = w;
130129
this.term_h = h;
131130
this.term.resize(this.term_w, this.term_h);
132-
console.log(this.term.rows, this.term.cols);
133131

134132
this.trigger("resize", this.term_w, this.term_h)
135133

client/core/globals.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
define(['require'], function (require) {
2+
window.codebox = {
3+
'require': require
4+
};
5+
6+
return window.codebox;
7+
});

client/models/addon.js

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ define([
66
"core/api",
77

88
// addons dependencies
9+
"core/globals",
910
"utils/themes",
1011
"utils/tabs",
1112
"utils/settings"

core/cb.addons/main.js

+27-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var Gittle = require('gittle');
77
var Gift = require('gift');
88
var temp = require('temp');
99
var wrench = require('wrench');
10+
var requirejs = require('requirejs');
1011
var exec = require('child_process').exec;
1112

1213
function setup(options, imports, register, app) {
@@ -77,10 +78,15 @@ function setup(options, imports, register, app) {
7778

7879
// Optimize client addon
7980
var optimizeAddon = function(addon) {
81+
var d = Q.defer();
82+
8083
if (!isClientside(addon)) {
8184
return Q.reject(new Error("Not a cleint side addon"));
8285
}
8386

87+
// R.js bin
88+
var rjs = path.resolve(__dirname, "../../node_modules/.bin/r.js");
89+
8490
// Base directory for the addon
8591
var addonPath = path.resolve(addonsPath + '/' + addon.name + '/');
8692

@@ -93,9 +99,27 @@ function setup(options, imports, register, app) {
9399
// Output file
94100
var output = path.resolve(addonPath, "addon-built.js");
95101

96-
var command = "r.js -o baseUrl="+addonPath+" paths.require-tools="+requiretoolsPath+" name="+main+" map.*.css=require-tools/css/css map.*.less=require-tools/less/less out="+output;
97-
98-
logger.log("Optimizing", addon.name);
102+
// Build config
103+
var optconfig = {
104+
'baseUrl': addonPath,
105+
'name': main,
106+
'out': output,
107+
'paths': {
108+
'require-tools': requiretoolsPath
109+
},
110+
'optimize': "none",
111+
'map': {
112+
'*': {
113+
'css': "require-tools/css/css",
114+
'less': "require-tools/less/less"
115+
}
116+
}
117+
};
118+
119+
var command = rjs+" -o baseUrl="+addonPath+" paths.require-tools="+requiretoolsPath+" name="+main+" map.*.css=require-tools/css/css map.*.less=require-tools/less/less out="+output;
120+
121+
// Run optimization
122+
logger.log("Optimizing", addon.name, command);
99123
return Q.nfcall(exec, command).fail(function(err) {
100124
logger.error("error for",addon.name);
101125
logger.exception(err, false);

package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@
2929
"glob": "3.2.6",
3030
"gift": "0.1.1",
3131
"temp": "0.6.0",
32-
"wrench": "1.5.4"
32+
"wrench": "1.5.4",
33+
"requirejs": "2.1.0",
34+
"less": "1.5.0",
35+
"csso": "1.3.9"
3336
},
3437
"bin": {
3538
"codebox": "./bin/codebox.js"

0 commit comments

Comments
 (0)