mirror of
https://github.com/Hopiu/fabric.js.git
synced 2026-05-10 23:03:10 +00:00
Resolve conflicts
This commit is contained in:
commit
4559918688
8 changed files with 8152 additions and 11 deletions
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"globals": {
|
||||
"define": true,
|
||||
"exports": true,
|
||||
"fabric": true,
|
||||
"Cufon": true,
|
||||
"Event": true,
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */
|
||||
|
||||
var exports = exports || {};
|
||||
var fabric = fabric || { version: "1.2.11" };
|
||||
|
||||
if (typeof exports !== 'undefined') {
|
||||
exports.fabric = fabric;
|
||||
}
|
||||
// make sure exports.fabric is always defined when used as 'global' later scopes
|
||||
exports.fabric = fabric;
|
||||
|
||||
if (typeof document !== 'undefined' && typeof window !== 'undefined') {
|
||||
fabric.document = document;
|
||||
|
|
|
|||
|
|
@ -84,6 +84,10 @@ Fabric.js started as a foundation for design editor on [printio.ru](http://print
|
|||
# or Google Closure Compiler
|
||||
$ node build.js modules=... minifier=closure
|
||||
|
||||
4. Enable AMD support via require.js (requires uglify)
|
||||
|
||||
$ node build.js requirejs modules=...
|
||||
|
||||
### Demos
|
||||
|
||||
- [Demos](http://fabricjs.com/demos/)
|
||||
|
|
@ -114,6 +118,7 @@ These are the optional modules that could be specified for inclusion, when build
|
|||
|
||||
Additional flags for build script are:
|
||||
|
||||
- **requirejs** — Makes fabric requirejs AMD-compatible in `dist/all.js`. *Note:* an unminified, requirejs-compatible version is always created in `dist/all.require.js`
|
||||
- **no-strict** — Strips "use strict" directives from source
|
||||
- **no-svg-export** — Removes svg exporting functionality
|
||||
- **no-es5-compat** - Removes ES5 compat methods (Array.prototype.*, String.prototype.*, Function.prototype.*)
|
||||
|
|
|
|||
69
build.js
69
build.js
|
|
@ -17,6 +17,21 @@ var modulesToExclude = buildArgsAsObject.exclude ? buildArgsAsObject.exclude.spl
|
|||
var minifier = buildArgsAsObject.minifier || 'uglifyjs';
|
||||
var mininfierCmd;
|
||||
|
||||
var noStrict = 'no-strict' in buildArgsAsObject;
|
||||
var noSVGExport = 'no-svg-export' in buildArgsAsObject;
|
||||
var noES5Compat = 'no-es5-compat' in buildArgsAsObject;
|
||||
var requirejs = 'requirejs' in buildArgsAsObject ? 'requirejs' : false;
|
||||
|
||||
// set amdLib var to encourage later support of other AMD systems
|
||||
var amdLib = requirejs;
|
||||
|
||||
// if we want requirejs AMD support, use uglify
|
||||
var amdUglifyFlags = " -r 'require,exports,window,fabric' -e window:window,undefined ";
|
||||
if (amdLib === 'requirejs' && minifier !== 'uglifyjs') {
|
||||
console.log('[notice]: require.js support requires uglifyjs as minifier; changed minifier to uglifyjs.');
|
||||
minifier = 'uglifyjs';
|
||||
}
|
||||
|
||||
if (minifier === 'yui') {
|
||||
mininfierCmd = 'java -jar lib/yuicompressor-2.4.6.jar dist/all.js -o dist/all.min.js';
|
||||
}
|
||||
|
|
@ -24,13 +39,9 @@ else if (minifier === 'closure') {
|
|||
mininfierCmd = 'java -jar lib/google_closure_compiler.jar --js dist/all.js --js_output_file dist/all.min.js';
|
||||
}
|
||||
else if (minifier === 'uglifyjs') {
|
||||
mininfierCmd = 'uglifyjs --output dist/all.min.js dist/all.js';
|
||||
mininfierCmd = 'uglifyjs ' + amdUglifyFlags + ' --output dist/all.min.js dist/all.js';
|
||||
}
|
||||
|
||||
var noStrict = 'no-strict' in buildArgsAsObject;
|
||||
var noSVGExport = 'no-svg-export' in buildArgsAsObject;
|
||||
var noES5Compat = 'no-es5-compat' in buildArgsAsObject;
|
||||
|
||||
var buildSh = 'build-sh' in buildArgsAsObject;
|
||||
var buildMinified = 'build-minified' in buildArgsAsObject;
|
||||
|
||||
|
|
@ -45,6 +56,7 @@ var distFileContents =
|
|||
(noStrict ? ' no-strict' : '') +
|
||||
(noSVGExport ? ' no-svg-export' : '') +
|
||||
(noES5Compat ? ' no-es5-compat' : '') +
|
||||
(requirejs ? ' requirejs' : '') +
|
||||
'` */';
|
||||
|
||||
function appendFileContents(fileNames, callback) {
|
||||
|
|
@ -101,6 +113,14 @@ function ifSpecifiedDependencyInclude(included, excluded, fileName) {
|
|||
);
|
||||
}
|
||||
|
||||
function ifSpecifiedAMDInclude(amdLib) {
|
||||
var supportedLibraries = ['requirejs'];
|
||||
if (supportedLibraries.indexOf(amdLib) > -1) {
|
||||
return 'src/amd/' + amdLib + '.js';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
var filesToInclude = [
|
||||
'HEADER.js',
|
||||
|
||||
|
|
@ -195,14 +215,16 @@ var filesToInclude = [
|
|||
ifSpecifiedInclude('text', 'src/shapes/text.class.js'),
|
||||
ifSpecifiedInclude('cufon', 'src/shapes/text.cufon.js'),
|
||||
|
||||
ifSpecifiedInclude('node', 'src/node.js')
|
||||
ifSpecifiedInclude('node', 'src/node.js'),
|
||||
|
||||
ifSpecifiedAMDInclude(amdLib)
|
||||
];
|
||||
|
||||
if (buildMinified) {
|
||||
for (var i = 0; i < filesToInclude.length; i++) {
|
||||
if (!filesToInclude[i]) continue;
|
||||
var fileNameWithoutSlashes = filesToInclude[i].replace(/\//g, '^');
|
||||
exec('uglifyjs -nc ' + filesToInclude[i] + ' > tmp/' + fileNameWithoutSlashes);
|
||||
exec('uglifyjs -nc ' + amdUglifyFlags + filesToInclude[i] + ' > tmp/' + fileNameWithoutSlashes);
|
||||
}
|
||||
}
|
||||
else if (buildSh) {
|
||||
|
|
@ -238,7 +260,16 @@ else {
|
|||
throw err;
|
||||
}
|
||||
|
||||
console.log('Built distribution to dist/all.js');
|
||||
// add js wrapping in AMD closure for requirejs if necessary
|
||||
if (amdLib !== false) {
|
||||
exec('uglifyjs dist/all.js ' + amdUglifyFlags + ' -b --output dist/all.js');
|
||||
}
|
||||
|
||||
if (amdLib !== false) {
|
||||
console.log('Built distribution to dist/all.js (' + amdLib + '-compatible)');
|
||||
} else {
|
||||
console.log('Built distribution to dist/all.js');
|
||||
}
|
||||
|
||||
exec(mininfierCmd, function (error, output) {
|
||||
if (error) {
|
||||
|
|
@ -251,6 +282,28 @@ else {
|
|||
console.log('Gzipped to dist/all.min.js.gz');
|
||||
});
|
||||
});
|
||||
|
||||
// Always build requirejs AMD module in dist/all.require.js
|
||||
// add necessary requirejs footer code to filesToInclude if we haven't before
|
||||
if (amdLib === false) {
|
||||
amdLib = "requirejs";
|
||||
filesToInclude[filesToInclude.length] = ifSpecifiedAMDInclude(amdLib);
|
||||
}
|
||||
|
||||
appendFileContents(filesToInclude, function() {
|
||||
fs.writeFile('dist/all.require.js', distFileContents, function (err) {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
throw err;
|
||||
}
|
||||
exec('uglifyjs dist/all.require.js ' + amdUglifyFlags + ' -b --output dist/all.require.js');
|
||||
console.log('Built distribution to dist/all.require.js (requirejs-compatible)');
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
8070
dist/all.require.js
vendored
Normal file
8070
dist/all.require.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
7
src/amd/requirejs.js
Normal file
7
src/amd/requirejs.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
/* Footer for requirejs AMD support */
|
||||
|
||||
window.fabric = fabric;
|
||||
|
||||
if ( typeof define === "function" && define.amd) {
|
||||
define( "fabric", [], function () { return fabric; } );
|
||||
}
|
||||
1
test.js
1
test.js
|
|
@ -5,6 +5,7 @@ testrunner.options.log.tests = false;
|
|||
testrunner.options.log.assertions = false;
|
||||
|
||||
testrunner.run({
|
||||
deps: "./test/fixtures/test_script.js",
|
||||
code: "./dist/all.js",
|
||||
tests: [
|
||||
'./test/unit/rect.js',
|
||||
|
|
|
|||
3
test/fixtures/test_script.js
vendored
3
test/fixtures/test_script.js
vendored
|
|
@ -1,4 +1,7 @@
|
|||
(function(){
|
||||
// set global variable
|
||||
this.foo = 'bar';
|
||||
this.window = undefined;
|
||||
this.document = undefined;
|
||||
|
||||
})();
|
||||
Loading…
Reference in a new issue