mirror of
https://github.com/strapi/strapi.git
synced 2025-08-09 17:26:11 +00:00
Merge branch 'master' into patch-1
This commit is contained in:
commit
2ba257ce1c
@ -5,7 +5,7 @@ const _ = require('lodash');
|
||||
shell.echo('');
|
||||
shell.echo('🕓 The setup process can take few minutes.');
|
||||
shell.echo('');
|
||||
shell.echo(`🔸 Administration Panel`);
|
||||
shell.echo('🔸 Administration Panel');
|
||||
shell.echo('📦 Installing packages...');
|
||||
|
||||
const pwd = shell.pwd();
|
||||
@ -19,28 +19,28 @@ shell.rm('-rf', path.resolve(appPath, 'package-lock.json'));
|
||||
shell.rm('-rf', path.resolve(appPath, 'admin', 'package-lock.json'));
|
||||
|
||||
// Install the project dependencies.
|
||||
shell.exec(`cd ${appPath} && npm install --ignore-scripts`, {
|
||||
shell.exec(`cd "${appPath}" && npm install --ignore-scripts`, {
|
||||
silent
|
||||
});
|
||||
|
||||
// Install the administration dependencies.
|
||||
shell.exec(`cd ${path.resolve(appPath, 'admin')} && npm install`, {
|
||||
shell.exec(`cd "${path.resolve(appPath, 'admin')}" && npm install`, {
|
||||
silent
|
||||
});
|
||||
|
||||
if (isDevelopmentMode) {
|
||||
shell.exec(`cd ${path.resolve(appPath, 'admin')} && npm link strapi-helper-plugin && npm link strapi-utils`, {
|
||||
shell.exec(`cd "${path.resolve(appPath, 'admin')}" && npm link strapi-helper-plugin && npm link strapi-utils`, {
|
||||
silent
|
||||
});
|
||||
} else {
|
||||
shell.exec(`cd ${path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin')} && npm install`, {
|
||||
shell.exec(`cd "${path.resolve(appPath, 'admin', 'node_modules', 'strapi-helper-plugin')}" && npm install`, {
|
||||
silent
|
||||
});
|
||||
}
|
||||
|
||||
shell.echo('🏗 Building...');
|
||||
|
||||
const build = shell.exec(`cd ${path.resolve(appPath, 'admin')} && APP_PATH=${appPath} npm run build`, {
|
||||
const build = shell.exec(`cd "${path.resolve(appPath, 'admin')}" && APP_PATH="${appPath}" npm run build`, {
|
||||
silent
|
||||
});
|
||||
|
||||
@ -58,23 +58,23 @@ if (process.env.npm_config_plugins === 'true') {
|
||||
shell.ls('* -d', plugins).forEach(function (plugin) {
|
||||
shell.echo(`🔸 Plugin - ${_.upperFirst(plugin)}`);
|
||||
shell.echo('📦 Installing packages...');
|
||||
shell.exec(`cd ${path.resolve(plugins, plugin)} && npm install`, {
|
||||
shell.exec(`cd "${path.resolve(plugins, plugin)}" && npm install`, {
|
||||
silent
|
||||
});
|
||||
|
||||
if (isDevelopmentMode) {
|
||||
shell.exec(`cd ${path.resolve(plugins, plugin)} && npm link strapi-helper-plugin`, {
|
||||
shell.exec(`cd "${path.resolve(plugins, plugin)}" && npm link strapi-helper-plugin`, {
|
||||
silent
|
||||
});
|
||||
} else {
|
||||
shell.exec(`cd ${path.resolve(plugins, plugin, 'node_modules', 'strapi-helper-plugin')} && npm install`, {
|
||||
shell.exec(`cd "${path.resolve(plugins, plugin, 'node_modules', 'strapi-helper-plugin')}" && npm install`, {
|
||||
silent
|
||||
});
|
||||
}
|
||||
|
||||
shell.echo('🏗 Building...');
|
||||
|
||||
const build = shell.exec(`cd ${path.resolve(plugins, plugin)} && APP_PATH=${appPath} npm run build`, {
|
||||
const build = shell.exec(`cd "${path.resolve(plugins, plugin)}" && APP_PATH="${appPath}" npm run build`, {
|
||||
silent
|
||||
});
|
||||
|
||||
|
@ -18,7 +18,7 @@ module.exports = (scope, success, error) => {
|
||||
knex.raw('select 1+1 as result').then(() => {
|
||||
logger.info('The app has been connected to the database successfully');
|
||||
knex.destroy();
|
||||
execSync(`rm -r ${scope.tmpPath}`);
|
||||
execSync(`rm -r "${scope.tmpPath}"`);
|
||||
|
||||
logger.info('Copying the dashboard...');
|
||||
|
||||
|
@ -32,7 +32,7 @@ module.exports = (scope, success, error) => {
|
||||
|
||||
Mongoose.connection.close();
|
||||
|
||||
execSync(`rm -r ${scope.tmpPath}`);
|
||||
execSync(`rm -r "${scope.tmpPath}"`);
|
||||
|
||||
logger.info('Copying the dashboard...');
|
||||
|
||||
|
@ -19,32 +19,33 @@ module.exports = mongoose => {
|
||||
return {
|
||||
convertType: mongooseType => {
|
||||
switch (mongooseType.toLowerCase()) {
|
||||
case 'string':
|
||||
case 'password':
|
||||
case 'text':
|
||||
case 'email':
|
||||
return 'String';
|
||||
case 'integer':
|
||||
case 'biginteger':
|
||||
return 'Number';
|
||||
case 'float':
|
||||
case 'decimal':
|
||||
return 'Float';
|
||||
case 'date':
|
||||
case 'time':
|
||||
case 'datetime':
|
||||
case 'timestamp':
|
||||
return Date;
|
||||
case 'array':
|
||||
return 'Array';
|
||||
case 'boolean':
|
||||
return 'Boolean';
|
||||
case 'binary':
|
||||
return 'Buffer';
|
||||
case 'uuid':
|
||||
return 'ObjectId';
|
||||
case 'enumeration':
|
||||
return 'String';
|
||||
case 'date':
|
||||
case 'datetime':
|
||||
case 'time':
|
||||
case 'timestamp':
|
||||
return Date;
|
||||
case 'decimal':
|
||||
case 'float':
|
||||
return 'Float';
|
||||
case 'json':
|
||||
return 'Mixed';
|
||||
case 'biginteger':
|
||||
case 'integer':
|
||||
return 'Number';
|
||||
case 'uuid':
|
||||
return 'ObjectId';
|
||||
case 'email':
|
||||
case 'enumeration':
|
||||
case 'password':
|
||||
case 'string':
|
||||
case 'text':
|
||||
return 'String';
|
||||
default:
|
||||
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ module.exports = (scope, success, error) => {
|
||||
|
||||
logger.info('The app has been connected to the database successfully!');
|
||||
|
||||
execSync(`rm -r ${scope.tmpPath}`);
|
||||
execSync(`rm -r "${scope.tmpPath}"`);
|
||||
|
||||
logger.info('Copying the dashboard...');
|
||||
|
||||
|
@ -87,6 +87,9 @@ class Strapi extends EventEmitter {
|
||||
try {
|
||||
this.config = assign(this.config, config)
|
||||
|
||||
// Emit starting event.
|
||||
this.emit('server:starting');
|
||||
|
||||
// Enhance app.
|
||||
await this.enhancer();
|
||||
// Load the app.
|
||||
@ -100,7 +103,9 @@ class Strapi extends EventEmitter {
|
||||
// Launch server.
|
||||
this.server.listen(this.config.port, err => {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
this.log.debug(`Server wasn't able to start properly.`);
|
||||
console.error(err);
|
||||
return this.stop();
|
||||
}
|
||||
|
||||
this.log.info('Server started in ' + this.config.appPath);
|
||||
@ -112,14 +117,16 @@ class Strapi extends EventEmitter {
|
||||
this.log.debug(`Version: ${this.config.info.strapi} (node v${this.config.info.node})`);
|
||||
this.log.info('To shut down your server, press <CTRL> + C at any time');
|
||||
|
||||
// Emit started event.
|
||||
this.emit('server:started');
|
||||
|
||||
if (cb && typeof cb === 'function') {
|
||||
cb();
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
} catch (err) {
|
||||
this.log.debug(`Server wasn't able to start properly.`);
|
||||
this.log.error(e);
|
||||
console.error(e);
|
||||
console.error(err);
|
||||
this.stop();
|
||||
}
|
||||
}
|
||||
@ -136,6 +143,17 @@ class Strapi extends EventEmitter {
|
||||
});
|
||||
});
|
||||
|
||||
this.server.on('error', err => {
|
||||
if (err.code === 'EADDRINUSE') {
|
||||
this.log.debug(`Server wasn't able to start properly.`);
|
||||
this.log.error(`The port ${err.port} is already used by another application.`);
|
||||
this.stop();
|
||||
return;
|
||||
}
|
||||
|
||||
console.error(err);
|
||||
});
|
||||
|
||||
this.server.destroy = cb => {
|
||||
this.server.close(cb);
|
||||
|
||||
|
@ -91,6 +91,12 @@ const mountHooks = function (files, cwd) {
|
||||
|
||||
});
|
||||
}),
|
||||
resolve
|
||||
(err, results) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
resolve();
|
||||
}
|
||||
);
|
||||
};
|
||||
|
@ -14,16 +14,10 @@ const exposer = require('./exposer');
|
||||
|
||||
module.exports = {
|
||||
loadFile: function(url) {
|
||||
try {
|
||||
// Clear cache.
|
||||
delete require.cache[require.resolve(path.resolve(this.config.appPath, url))];
|
||||
// Require without cache.
|
||||
return require(path.resolve(this.config.appPath, url));
|
||||
} catch (e) {
|
||||
this.log.error(e);
|
||||
|
||||
return {};
|
||||
}
|
||||
},
|
||||
|
||||
setConfig: function(ctx, path, type, loader) {
|
||||
@ -123,11 +117,12 @@ module.exports = {
|
||||
try {
|
||||
if (this.config.uuid) {
|
||||
const publicKey = fs.readFileSync(path.resolve(__dirname, 'resources', 'key.pub'));
|
||||
const options = { timeout: 1000 };
|
||||
|
||||
const [usage, signedHash, required] = await Promise.all([
|
||||
fetch('https://strapi.io/assets/images/usage.gif'),
|
||||
fetch('https://strapi.io/hash.txt'),
|
||||
fetch('https://strapi.io/required.txt')
|
||||
fetch('https://strapi.io/assets/images/usage.gif', options),
|
||||
fetch('https://strapi.io/hash.txt', options),
|
||||
fetch('https://strapi.io/required.txt', options)
|
||||
]);
|
||||
|
||||
if (usage.status === 200 && signedHash.status === 200) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user