update dryice build script

This commit is contained in:
Fabian Jakobs 2011-01-31 14:20:26 +01:00
commit 850c13a22c
6 changed files with 128 additions and 121 deletions

View file

@ -36,7 +36,6 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
//require("long-stack-traces");
var copy = require('dryice').copy; var copy = require('dryice').copy;
var aceHome = __dirname; var aceHome = __dirname;
@ -49,22 +48,32 @@ var project = copy.createCommonJsProject([
aceHome + '/demo' aceHome + '/demo'
]); ]);
copy({
source: "build_support/editor.html",
dest: 'build/editor.html'
});
var ace = copy.createDataObject(); var ace = copy.createDataObject();
copy({ copy({
source: [ source: [
copy.source.commonjs({ copy.source.commonjs({
project: project, project: project,
require: [ require: [
'pilot/plugin_manager', "pilot/fixoldbrowsers",
'pilot/environment', "pilot/index",
'pilot/index', "pilot/plugin_manager",
'startup', "pilot/environment",
"ace/editor",
"ace/edit_session",
"ace/undomanager",
"ace/theme/textmate",
"ace/mode/text",
"ace/mode/matching_brace_outdent",
"ace/virtual_renderer"
] ]
}), })
'build_support/mini_require.js',
'build_support/boot.js'
], ],
filter: [ copy.filter.debug, copy.filter.moduleDefines ], filter: [ copy.filter.moduleDefines ],
dest: ace dest: ace
}); });
copy({ copy({
@ -85,11 +94,19 @@ copy({
filter: [ copy.filter.base64 ], filter: [ copy.filter.base64 ],
dest: ace dest: ace
}); });
copy({
source: [
'build_support/mini_require.js',
'build_support/boot.js'
],
dest: ace
});
// Create the compressed and uncompressed output files // Create the compressed and uncompressed output files
copy({ copy({
source: ace, source: ace,
filter: copy.filter.uglifyjs, // filter: copy.filter.uglifyjs,
dest: 'build/ace.js' dest: 'build/ace.js'
}); });
copy({ copy({
@ -110,7 +127,7 @@ copy({
require: [ 'cockpit/index' ] require: [ 'cockpit/index' ]
}), }),
], ],
filter: [ copy.filter.debug, copy.filter.moduleDefines ], filter: [ copy.filter.moduleDefines ],
dest: cockpit dest: cockpit
}); });
copy({ copy({
@ -143,108 +160,87 @@ copy({
dest: 'build/cockpit-uncompressed.js' dest: 'build/cockpit-uncompressed.js'
}); });
console.log('# conventional ---------');
// Pilot sources // create modes
var pilotData = copy.createDataObject(); project.assmeAllFilesLoaded();
copy({
source: { ["css", "html", "javascript", "php", "python", "xml"].forEach(function(mode) {
root: aceHome + '/support/pilot/lib', copy({
include: /.*\.js$/, source: [
exclude: /tests?\// copy.source.commonjs({
}, project: project,
filter: [ copy.filter.debug, copy.filter.moduleDefines ], require: [ 'ace/mode/' + mode ]
dest: pilotData }),
],
filter: [ copy.filter.moduleDefines, copy.filter.uglifyjs ],
dest: "build/mode/" + mode + ".js"
});
}); });
// Cockpit sources // create worker
var cockpitData = copy.createDataObject(); console.log('# worker ---------');
copy({
source: {
root: aceHome + '/support/cockpit/lib',
include: /.*\.js$/,
exclude: /tests?\//
},
filter: [ copy.filter.moduleDefines ],
dest: cockpitData
});
copy({
source: {
root: aceHome + '/support/cockpit/lib',
include: /.*\.css$|.*\.html$/,
exclude: /tests?\//
},
filter: [ copy.filter.addDefines ],
dest: cockpitData
});
copy({
source: {
root: aceHome + '/support/cockpit/lib',
include: /.*\.png$|.*\.gif$/,
exclude: /tests?\//
},
filter: [ copy.filter.base64 ],
dest: cockpitData
});
// Ace sources var jsWorker = copy.createDataObject();
var aceData = copy.createDataObject(); var workerProject = copy.createCommonJsProject([
aceHome + '/support/pilot/lib',
aceHome + '/lib'
]);
copy({ copy({
source: [ source: [
// Exclude all themes/modes so we can just include textmate/js copy.source.commonjs({
{ project: workerProject,
root: aceHome + '/lib', require: [
include: /.*\.js$/, 'pilot/fixoldbrowsers',
exclude: /tests?\/|theme\/|mode\/|ace\/worker\/worker\.js/ 'pilot/event_emitter',
}, 'pilot/oop',
{ base: aceHome + '/lib/', path: 'ace/theme/textmate.js' }, 'ace/mode/javascript_worker'
{ base: aceHome + '/lib/', path: 'ace/mode/text.js' }, ]
{ base: aceHome + '/lib/', path: 'ace/mode/javascript.js' }, }),
{ base: aceHome + '/lib/', path: 'ace/mode/javascript_worker.js' },
{ base: aceHome + '/lib/', path: 'ace/mode/text_highlight_rules.js' },
{ base: aceHome + '/lib/', path: 'ace/mode/javascript_highlight_rules.js' },
{ base: aceHome + '/lib/', path: 'ace/mode/doc_comment_highlight_rules.js' },
{ base: aceHome + '/lib/', path: 'ace/mode/matching_brace_outdent.js' },
{ base: aceHome + '/lib/', path: 'ace/mode/javascript_highlight_rules.js' }
], ],
filter: [ copy.filter.moduleDefines ], filter: [ copy.filter.moduleDefines, /*copy.filter.uglifyjs*/ ],
dest: aceData dest: jsWorker
}); });
copy({ copy({
source: { source: [
aceHome + "/lib/ace/worker/worker.js",
jsWorker
],
dest: "build/worker/javascript.js"
});
// create themes
var eclipseTheme = copy.createDataObject();
copy({
source: [{
root: aceHome + '/lib', root: aceHome + '/lib',
include: /tm\.css|editor\.css/, include: "ace/theme/eclipse.js"
exclude: /tests?\// }],
}, filter: [ copy.filter.moduleDefines, copy.filter.uglifyjs ],
filter: [ copy.filter.addDefines ], dest: eclipseTheme
dest: aceData });
copy({
source: [{
root: aceHome + '/lib',
include: "ace/theme/eclipse.css"
}],
filter: [ copy.filter.addDefines, copy.filter.uglifyjs ],
dest: eclipseTheme
});
copy({
source: eclipseTheme,
dest: 'build/theme/eclipse.js'
}); });
// Piece together the parts that we want [
var data = copy.createDataObject(); "clouds", "clouds_midnight", "cobalt", "dawn", "idle_fingers", "kr_theme",
copy({ "mono_industrial", "monokai", "pastel_on_dark", "twilight"
source: [ ].forEach(function(theme) {
'build_support/mini_require.js', copy({
pilotData, source: [{
// cockpitData, root: aceHome + '/lib',
aceData, include: "ace/theme/" + theme + ".js"
'build_support/boot.js' }],
], filter: [ copy.filter.moduleDefines, copy.filter.uglifyjs ],
dest: data dest: "build/theme/" + theme + ".js"
}); });
// Create the compressed and uncompressed output files
copy({
source: data,
filter: copy.filter.uglifyjs,
dest: 'build/old-ace.js'
});
//copy({
// source: data,
// dest: 'build/ace-uncompressed.js'
//});
copy({
source: data,
dest: 'build/old-ace-uncompressed.js'
}); });

View file

@ -35,21 +35,37 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
var deps = [ "pilot/plugin_manager", "pilot/environment" ]; var deps = [
"pilot/fixoldbrowsers",
"pilot/index",
"pilot/plugin_manager",
"pilot/environment",
"ace/editor",
"ace/edit_session",
"ace/virtual_renderer",
"ace/undomanager",
"ace/theme/textmate"
];
require(deps, function() { require(deps, function() {
var catalog = require("pilot/plugin_manager").catalog; var catalog = require("pilot/plugin_manager").catalog;
catalog.registerPlugins([ "pilot/index" ]); catalog.registerPlugins([ "pilot/index" ]);
var Dom = require("pilot/dom");
var Event = require("pilot/event");
var ace = { var Editor = require("ace/editor").Editor;
var EditSession = require("ace/edit_session").EditSession;
var UndoManager = require("ace/undomanager").UndoManager;
var Renderer = require("ace/virtual_renderer").VirtualRenderer;
window.ace = {
edit: function(el) { edit: function(el) {
if (typeof(el) == "string") { if (typeof(el) == "string") {
el = document.getElementById(el); el = document.getElementById(el);
} }
var doc = new EditSession(Dom.getInnerText(el)); var doc = new EditSession(Dom.getInnerText(el));
doc.setMode(new JavaScriptMode());
doc.setUndoManager(new UndoManager()); doc.setUndoManager(new UndoManager());
el.innerHTML = ''; el.innerHTML = '';
@ -69,4 +85,4 @@ require(deps, function() {
return editor; return editor;
} }
}; };
} });

View file

@ -19,10 +19,14 @@
<script src="ace.js" type="text/javascript" charset="utf-8"></script> <script src="ace.js" type="text/javascript" charset="utf-8"></script>
<script src="theme/twilight.js" type="text/javascript" charset="utf-8"></script> <script src="theme/twilight.js" type="text/javascript" charset="utf-8"></script>
<script src="mode/javascript.js" type="text/javascript" charset="utf-8"></script>
<script> <script>
document.addEventListener("DOMContentLoaded", function() { document.addEventListener("DOMContentLoaded", function() {
var editor = ace.edit("editor"); var editor = ace.edit("editor");
editor.setTheme("ace/theme/twilight"); editor.setTheme("ace/theme/twilight");
var JavaScriptMode = require("ace/mode/javascript").Mode;
editor.getSession().setMode(new JavaScriptMode());
}, false); }, false);
</script> </script>

View file

@ -76,19 +76,10 @@ function require(module, callback) {
return payload; return payload;
}; };
window.define = function(module, payload) {
if (typeof module !== 'string') {
console.error('dropping module because define wasn\'t munged.');
console.trace();
return;
}
// console.log('defining module: ' + module + ' as a ' + typeof payload);
require.modules[module] = payload;
}
} }
require.packaged = true;
/** /**
* Internal function to lookup moduleNames and resolve them by calling the * Internal function to lookup moduleNames and resolve them by calling the
* definition function if needed. * definition function if needed.

View file

@ -124,7 +124,7 @@ oop.inherits(Mode, TextMode);
this.createWorker = function(session) { this.createWorker = function(session) {
var doc = session.getDocument(); var doc = session.getDocument();
var worker = new WorkerClient("../..", ["ace", "pilot"], "ace/mode/javascript_worker", "JavaScriptWorker"); var worker = new WorkerClient("../..", ["ace", "pilot"], "worker/javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker");
worker.call("setValue", [doc.getValue()]); worker.call("setValue", [doc.getValue()]);
doc.on("change", function(e) { doc.on("change", function(e) {

View file

@ -11,12 +11,12 @@ define(function(require, exports, module) {
var oop = require("pilot/oop"); var oop = require("pilot/oop");
var EventEmitter = require("pilot/event_emitter").EventEmitter; var EventEmitter = require("pilot/event_emitter").EventEmitter;
var WorkerClient = function(baseUrl, topLevelNamespaces, module, classname) { var WorkerClient = function(baseUrl, topLevelNamespaces, packagedJs, module, classname) {
this.callbacks = []; this.callbacks = [];
if (require.packaged) { if (require.packaged) {
var worker = this.$worker = new Worker("worker.js"); var worker = this.$worker = new Worker(packagedJs);
} }
else { else {
var workerUrl = require.nameToUrl("ace/worker/worker", null, "_"); var workerUrl = require.nameToUrl("ace/worker/worker", null, "_");