mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-13 01:15:47 +01:00
* Fix forking while debugging Debugger address in use no longer happens * Fix cropper error
This commit is contained in:
committed by
Barış Soner Uşaklı
parent
bb6dcf3779
commit
1c35213934
2
app.js
2
app.js
@@ -37,7 +37,7 @@ var winston = require('winston');
|
||||
var path = require('path');
|
||||
var pkg = require('./package.json');
|
||||
var file = require('./src/file');
|
||||
var debug = require('./src/meta/debugParams')().execArgv.length;
|
||||
var debug = require('./src/meta/debugFork').debugging;
|
||||
|
||||
global.env = process.env.NODE_ENV || 'production';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
|
||||
define('pictureCropper', ['translator', 'cropper', 'benchpress'], function (translator, cropper, Benchpress) {
|
||||
define('pictureCropper', ['translator', 'cropper', 'benchpress'], function (translator, Cropper, Benchpress) {
|
||||
var module = {};
|
||||
|
||||
module.show = function (data, callback) {
|
||||
@@ -46,7 +46,7 @@ define('pictureCropper', ['translator', 'cropper', 'benchpress'], function (tran
|
||||
var img = document.getElementById('cropped-image');
|
||||
$(img).css('max-height', cropBoxHeight);
|
||||
|
||||
var cropperTool = new cropper.default(img, {
|
||||
var cropperTool = new Cropper(img, {
|
||||
aspectRatio: data.aspectRatio,
|
||||
autoCropArea: 1,
|
||||
viewMode: 1,
|
||||
@@ -122,7 +122,7 @@ define('pictureCropper', ['translator', 'cropper', 'benchpress'], function (tran
|
||||
$(this).addClass('disabled');
|
||||
cropperTool.destroy();
|
||||
|
||||
cropperTool = new cropper.default(img, {
|
||||
cropperTool = new Cropper(img, {
|
||||
viewMode: 1,
|
||||
autoCropArea: 1,
|
||||
ready: function () {
|
||||
|
||||
41
src/meta/debugFork.js
Normal file
41
src/meta/debugFork.js
Normal file
@@ -0,0 +1,41 @@
|
||||
'use strict';
|
||||
|
||||
var fork = require('child_process').fork;
|
||||
|
||||
var debugArg = process.execArgv.find(function (arg) {
|
||||
return /^--(debug|inspect)/.test(arg);
|
||||
});
|
||||
var debugging = !!debugArg;
|
||||
|
||||
debugArg = debugArg ? debugArg.replace('-brk', '').split('=') : ['--debug', 5859];
|
||||
var lastAddress = parseInt(debugArg[1], 10);
|
||||
|
||||
/**
|
||||
* child-process.fork, but safe for use in debuggers
|
||||
* @param {string} modulePath
|
||||
* @param {string[]} [args]
|
||||
* @param {any} [options]
|
||||
*/
|
||||
function debugFork(modulePath, args, options) {
|
||||
var execArgv = [];
|
||||
if (global.v8debug || debugging) {
|
||||
lastAddress += 1;
|
||||
|
||||
execArgv = [debugArg[0] + '=' + lastAddress, '--nolazy'];
|
||||
}
|
||||
|
||||
if (!Array.isArray(args)) {
|
||||
options = args;
|
||||
args = [];
|
||||
}
|
||||
|
||||
options = options || {};
|
||||
options = Object.assign({}, options, {
|
||||
execArgv: execArgv,
|
||||
});
|
||||
|
||||
return fork(modulePath, args, options);
|
||||
}
|
||||
debugFork.debugging = debugging;
|
||||
|
||||
module.exports = debugFork;
|
||||
@@ -1,16 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (execArgv) {
|
||||
execArgv = execArgv || process.execArgv;
|
||||
var debugArg = execArgv.find(function (arg) {
|
||||
return /^--(debug|inspect)/.test(arg);
|
||||
});
|
||||
if (global.v8debug || debugArg) {
|
||||
debugArg = debugArg ? debugArg.split('=') : ['--debug', 5859];
|
||||
var num = parseInt(debugArg[1], 10) + 1;
|
||||
|
||||
return { execArgv: [debugArg[0] + '=' + num, '--nolazy'] };
|
||||
}
|
||||
|
||||
return { execArgv: [] };
|
||||
};
|
||||
@@ -1,7 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
var fs = require('fs');
|
||||
var childProcess = require('child_process');
|
||||
var os = require('os');
|
||||
var uglifyjs = require('uglify-js');
|
||||
var async = require('async');
|
||||
@@ -11,7 +10,7 @@ var postcss = require('postcss');
|
||||
var autoprefixer = require('autoprefixer');
|
||||
var clean = require('postcss-clean');
|
||||
|
||||
var debugParams = require('./debugParams');
|
||||
var fork = require('./debugFork');
|
||||
|
||||
var Minifier = module.exports;
|
||||
|
||||
@@ -47,13 +46,12 @@ function getChild() {
|
||||
return free.shift();
|
||||
}
|
||||
|
||||
var forkProcessParams = debugParams();
|
||||
var proc = childProcess.fork(__filename, [], Object.assign({}, forkProcessParams, {
|
||||
var proc = fork(__filename, [], {
|
||||
cwd: __dirname,
|
||||
env: {
|
||||
minifier_child: true,
|
||||
},
|
||||
}));
|
||||
});
|
||||
pool.push(proc);
|
||||
|
||||
return proc;
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
'use strict';
|
||||
|
||||
var fork = require('child_process').fork;
|
||||
var path = require('path');
|
||||
|
||||
var debugParams = require('./meta/debugParams');
|
||||
var fork = require('./meta/debugFork');
|
||||
|
||||
exports.hash = function (rounds, password, callback) {
|
||||
forkChild({ type: 'hash', rounds: rounds, password: password }, callback);
|
||||
@@ -17,7 +16,7 @@ exports.compare = function (password, hash, callback) {
|
||||
};
|
||||
|
||||
function forkChild(message, callback) {
|
||||
var child = fork(path.join(__dirname, 'bcrypt'), [], debugParams());
|
||||
var child = fork(path.join(__dirname, 'bcrypt'));
|
||||
|
||||
child.on('message', function (msg) {
|
||||
if (msg.err) {
|
||||
|
||||
27
test/meta.js
27
test/meta.js
@@ -276,13 +276,28 @@ describe('meta', function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe('debug params', function () {
|
||||
it('should return fork arguments for debug', function (done) {
|
||||
var debugParams = require('../src/meta/debugParams');
|
||||
var data = debugParams(['--debug=5858', '--foo=1']);
|
||||
assert.equal(data.execArgv[0], '--debug=5859');
|
||||
assert.equal(data.execArgv[1], '--nolazy');
|
||||
describe('debugFork', function () {
|
||||
var oldArgv;
|
||||
before(function () {
|
||||
oldArgv = process.execArgv;
|
||||
process.execArgv = ['--debug=5858', '--foo=1'];
|
||||
});
|
||||
|
||||
it('should detect debugging', function (done) {
|
||||
var debugFork = require('../src/meta/debugFork');
|
||||
assert(!debugFork.debugging);
|
||||
|
||||
var debugForkPath = require.resolve('../src/meta/debugFork');
|
||||
delete require.cache[debugForkPath];
|
||||
|
||||
debugFork = require('../src/meta/debugFork');
|
||||
assert(debugFork.debugging);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
after(function () {
|
||||
process.execArgv = oldArgv;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user