mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2024-12-29 09:22:22 -05:00
Node.js: Fix bug when using paper-core.js
And improve Node.js examples. Closes #975
This commit is contained in:
parent
16a7baa967
commit
c35814f94f
9 changed files with 51 additions and 49 deletions
|
@ -1,7 +1,7 @@
|
||||||
// Please note: When loading paper as a normal module installed in node_modules,
|
// Please note: When loading paper as a normal module installed in node_modules,
|
||||||
// you would use this instead:
|
// you would use this instead:
|
||||||
// var paper = require('paper');
|
// var paper = require('paper');
|
||||||
var paper = require('../../dist/paper-full.js');
|
var paper = require('../../dist/paper-core.js');
|
||||||
paper.setup(new paper.Size(1024, 768));
|
paper.setup(new paper.Size(1024, 768));
|
||||||
|
|
||||||
var layer = paper.project.activeLayer;
|
var layer = paper.project.activeLayer;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Please note: When loading paper as a normal module installed in node_modules,
|
// Please note: When loading paper as a normal module installed in node_modules,
|
||||||
// you would use this instead:
|
// you would use this instead:
|
||||||
// var paper = require('paper');
|
// var paper = require('paper');
|
||||||
var paper = require('../../dist/paper-full.js');
|
var paper = require('../../dist/paper-core.js');
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
|
|
||||||
http.createServer(function(request, response) {
|
http.createServer(function(request, response) {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Please note: When loading paper as a normal module installed in node_modules,
|
// Please note: When loading paper as a normal module installed in node_modules,
|
||||||
// you would use this instead:
|
// you would use this instead:
|
||||||
// var paper = require('paper');
|
// var paper = require('paper');
|
||||||
var paper = require('../../dist/paper-full.js');
|
var paper = require('../../dist/paper-core.js');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ fs.readFile('./in.json', { encoding: 'utf8' }, function (err, data) {
|
||||||
throw err;
|
throw err;
|
||||||
paper.project.importJSON(data);
|
paper.project.importJSON(data);
|
||||||
paper.view.update();
|
paper.view.update();
|
||||||
fs.writeFile(path.resolve(__dirname, 'out.pdf'), canvas.toBuffer(), function (err) {
|
fs.writeFile(path.resolve('./out.pdf'), canvas.toBuffer(), function (err) {
|
||||||
if (err)
|
if (err)
|
||||||
throw err;
|
throw err;
|
||||||
console.log('Saved!');
|
console.log('Saved!');
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
||||||
// Please note: When loading paper as a normal module installed in node_modules,
|
// Please note: When loading paper as a normal module installed in node_modules,
|
||||||
// you would use this instead:
|
// you would use this instead:
|
||||||
// var paper = require('paper');
|
// var paper = require('paper');
|
||||||
var paper = require('../../dist/paper-full.js');
|
var paper = require('../../dist/paper-core.js');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
var canvas = paper.createCanvas(800, 600);
|
var canvas = paper.createCanvas(800, 600);
|
||||||
|
@ -12,6 +12,7 @@ var raster = new paper.Raster(url);
|
||||||
raster.position = paper.view.center;
|
raster.position = paper.view.center;
|
||||||
|
|
||||||
raster.onLoad = function() {
|
raster.onLoad = function() {
|
||||||
|
paper.view.update();
|
||||||
console.log('The image has loaded:' + raster.bounds);
|
console.log('The image has loaded:' + raster.bounds);
|
||||||
|
|
||||||
// Saving the canvas to a file.
|
// Saving the canvas to a file.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Please note: When loading paper as a normal module installed in node_modules,
|
// Please note: When loading paper as a normal module installed in node_modules,
|
||||||
// you would use this instead:
|
// you would use this instead:
|
||||||
// var paper = require('paper');
|
// var paper = require('paper');
|
||||||
var paper = require('../../dist/paper-full.js');
|
var paper = require('../../dist/paper-core.js');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ with (paper) {
|
||||||
var svg = project.exportSVG({ asString: true });
|
var svg = project.exportSVG({ asString: true });
|
||||||
console.log(svg);
|
console.log(svg);
|
||||||
|
|
||||||
fs.writeFile(path.resolve(__dirname, 'out.svg'),svg, function (err) {
|
fs.writeFile(path.resolve('./out.svg'),svg, function (err) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
console.log('Saved!');
|
console.log('Saved!');
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
// Please note: When loading paper as a normal module installed in node_modules,
|
// Please note: When loading paper as a normal module installed in node_modules,
|
||||||
// you would use this instead:
|
// you would use this instead:
|
||||||
// var paper = require('paper');
|
// var paper = require('paper');
|
||||||
var paper = require('../../dist/paper-full.js');
|
var paper = require('../../dist/paper-core.js');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
paper.setup(new paper.Size(300, 600));
|
paper.setup(new paper.Size(300, 600));
|
||||||
paper.project.importSVG(/*'in.svg'*/'file://' + path.resolve(__dirname, 'in.svg'), {
|
paper.project.importSVG(/*'in.svg'*/'file://' + path.resolve('./in.svg'), {
|
||||||
onLoad: function(item) {
|
onLoad: function(item) {
|
||||||
paper.view.exportFrames({
|
paper.view.exportFrames({
|
||||||
amount: 1,
|
amount: 1,
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
"gulp-cached": "^1.1.0",
|
"gulp-cached": "^1.1.0",
|
||||||
"gulp-git-streamed": "^1.0.0",
|
"gulp-git-streamed": "^1.0.0",
|
||||||
"gulp-jshint": "^2.0.0",
|
"gulp-jshint": "^2.0.0",
|
||||||
"gulp-prepro": "^2.3.0",
|
"gulp-prepro": "^2.4.0",
|
||||||
"gulp-qunits": "^2.0.1",
|
"gulp-qunits": "^2.0.1",
|
||||||
"gulp-rename": "^1.2.2",
|
"gulp-rename": "^1.2.2",
|
||||||
"gulp-shell": "^0.5.2",
|
"gulp-shell": "^0.5.2",
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
"jshint": "2.8.x",
|
"jshint": "2.8.x",
|
||||||
"jshint-summary": "^0.4.0",
|
"jshint-summary": "^0.4.0",
|
||||||
"merge-stream": "^1.0.0",
|
"merge-stream": "^1.0.0",
|
||||||
"prepro": "^2.3.0",
|
"prepro": "^2.4.0",
|
||||||
"qunitjs": "^1.20.0",
|
"qunitjs": "^1.20.0",
|
||||||
"require-dir": "^0.3.0",
|
"require-dir": "^0.3.0",
|
||||||
"resemblejs": "^2.1.0",
|
"resemblejs": "^2.1.0",
|
||||||
|
|
|
@ -12,46 +12,47 @@
|
||||||
|
|
||||||
var fs = require('fs'),
|
var fs = require('fs'),
|
||||||
path = require('path');
|
path = require('path');
|
||||||
Canvas = require('canvas');
|
|
||||||
|
|
||||||
module.exports = function(paper) {
|
module.exports = function(paper) {
|
||||||
var sourceMaps = {},
|
if (paper.PaperScript) {
|
||||||
sourceMapSupprt = 'require("source-map-support").install(paper.PaperScript.sourceMapSupport);\n';
|
var sourceMapSupprt = 'require("source-map-support").install(paper.PaperScript.sourceMapSupport);\n',
|
||||||
|
sourceMaps = {};
|
||||||
|
|
||||||
paper.PaperScript.sourceMapSupport = {
|
paper.PaperScript.sourceMapSupport = {
|
||||||
retrieveSourceMap: function(source) {
|
retrieveSourceMap: function(source) {
|
||||||
var map = sourceMaps[source];
|
var map = sourceMaps[source];
|
||||||
return map ? { url: source, map: map } : null;
|
return map ? { url: source, map: map } : null;
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
// Register the .pjs extension for automatic compilation as PaperScript
|
|
||||||
require.extensions['.pjs'] = function(module, filename) {
|
|
||||||
// Requiring a PaperScript on Node.js returns an initialize method which
|
|
||||||
// needs to receive a Canvas object when called and returns the
|
|
||||||
// PaperScope.
|
|
||||||
module.exports = function(canvas) {
|
|
||||||
var source = fs.readFileSync(filename, 'utf8'),
|
|
||||||
code = sourceMapSupprt + source,
|
|
||||||
compiled = paper.PaperScript.compile(code, {
|
|
||||||
url: filename,
|
|
||||||
source: source,
|
|
||||||
sourceMaps: true,
|
|
||||||
offset: -1 // remove sourceMapSupprt...
|
|
||||||
}),
|
|
||||||
scope = new paper.PaperScope();
|
|
||||||
// Keep track of sourceMaps so retrieveSourceMap() can link them up
|
|
||||||
scope.setup(canvas);
|
|
||||||
scope.__filename = filename;
|
|
||||||
scope.__dirname = path.dirname(filename);
|
|
||||||
// Expose core methods and values
|
|
||||||
scope.require = require;
|
|
||||||
scope.console = console;
|
|
||||||
sourceMaps[filename] = compiled.map;
|
|
||||||
paper.PaperScript.execute(compiled, scope);
|
|
||||||
return scope;
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
// Register the .pjs extension for automatic compilation as PaperScript
|
||||||
|
require.extensions['.pjs'] = function(module, filename) {
|
||||||
|
// Requiring a PaperScript on Node.js returns an initialize method which
|
||||||
|
// needs to receive a Canvas object when called and returns the
|
||||||
|
// PaperScope.
|
||||||
|
module.exports = function(canvas) {
|
||||||
|
var source = fs.readFileSync(filename, 'utf8'),
|
||||||
|
code = sourceMapSupprt + source,
|
||||||
|
compiled = paper.PaperScript.compile(code, {
|
||||||
|
url: filename,
|
||||||
|
source: source,
|
||||||
|
sourceMaps: true,
|
||||||
|
offset: -1 // remove sourceMapSupprt...
|
||||||
|
}),
|
||||||
|
scope = new paper.PaperScope();
|
||||||
|
// Keep track of sourceMaps so retrieveSourceMap() can link them up
|
||||||
|
scope.setup(canvas);
|
||||||
|
scope.__filename = filename;
|
||||||
|
scope.__dirname = path.dirname(filename);
|
||||||
|
// Expose core methods and values
|
||||||
|
scope.require = require;
|
||||||
|
scope.console = console;
|
||||||
|
sourceMaps[filename] = compiled.map;
|
||||||
|
paper.PaperScript.execute(compiled, scope);
|
||||||
|
return scope;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
paper.PaperScope.inject({
|
paper.PaperScope.inject({
|
||||||
createCanvas: function(width, height, type) {
|
createCanvas: function(width, height, type) {
|
||||||
|
|
Loading…
Reference in a new issue