diff --git a/packages/strapi-generate-new/files/config/general.json b/packages/strapi-generate-new/files/config/general.json index c33008c84b..cf1a6c8c7a 100755 --- a/packages/strapi-generate-new/files/config/general.json +++ b/packages/strapi-generate-new/files/config/general.json @@ -7,5 +7,5 @@ "prefix": "", "static": true, "views": false, - "websockets": true + "websockets": false } diff --git a/packages/strapi-generate-new/json/package.json.js b/packages/strapi-generate-new/json/package.json.js index 176d9798d4..b503e700c7 100755 --- a/packages/strapi-generate-new/json/package.json.js +++ b/packages/strapi-generate-new/json/package.json.js @@ -22,11 +22,11 @@ module.exports = scope => { 'version': '0.1.0', 'description': 'A Strapi application.', 'devDependencies': { - "babel-eslint": "^7.1.1", - "eslint": "^3.12.2", - "eslint-config-airbnb": "^13.0.0", - "eslint-plugin-import": "^2.2.0", - "eslint-plugin-react": "^6.8.0" + 'babel-eslint': '^7.1.1', + 'eslint': '^3.12.2', + 'eslint-config-airbnb': '^13.0.0', + 'eslint-plugin-import': '^2.2.0', + 'eslint-plugin-react': '^6.8.0' }, 'dependencies': { 'lodash': '4.x.x', diff --git a/packages/strapi-generate-new/lib/after.js b/packages/strapi-generate-new/lib/after.js index a1f437a795..f6d7651de5 100755 --- a/packages/strapi-generate-new/lib/after.js +++ b/packages/strapi-generate-new/lib/after.js @@ -10,6 +10,7 @@ const path = require('path'); // Public node modules. const _ = require('lodash'); const fs = require('fs-extra'); +const npm = require('npm'); // Logger. const logger = require('strapi-utils').logger; @@ -33,7 +34,7 @@ module.exports = (scope, cb) => { const missingDependencies = []; // Verify if the dependencies are available into the global - _.forEach(_.get(packageJSON, 'dependencies'), (value, key) => { + _.forEach(_.merge(_.get(packageJSON, 'dependencies'), _.get(packageJSON, 'devDependencies')), (value, key) => { try { fs.accessSync(path.resolve(strapiRootPath, key), fs.constants.R_OK | fs.constants.W_OK); fs.symlinkSync(path.resolve(strapiRootPath, key), path.resolve(scope.rootPath, 'node_modules', key), 'dir'); @@ -50,13 +51,40 @@ module.exports = (scope, cb) => { logger.info('Your new application `' + scope.name + '` is ready at `' + scope.rootPath + '`.'); if (!_.isEmpty(missingDependencies)) { - console.log(); - logger.warn('You should run `npm install` into your application before starting it.'); - console.log(); - logger.warn('Some dependencies could not be installed:'); - _.forEach(missingDependencies, value => logger.warn('• ' + value)); - console.log(); - } + npm.load({loglevel: 'silent'}, function(err) { + if (err) { + console.log(); + logger.warn('You should run `npm install` into your application before starting it.'); + console.log(); + logger.warn('Some dependencies could not be installed:'); + _.forEach(missingDependencies, value => logger.warn('• ' + value)); + console.log(); - return cb(); + return cb(); + } + + const installDependency = (dependency, index) => { + if (_.isEmpty(dependency)) { + console.log(); + return cb(); + } + + console.log(); + logger.info('Installing ' + dependency + '...'); + console.log(); + + npm.commands.install([dependency], (err) => { + if (err) { + console.log(); + logger.warn('You should run `npm install ' + dependency + '` into your application before starting it.'); + console.log(); + } + + installDependency(missingDependencies[index++], index); + }); + }; + + installDependency(missingDependencies[0], 0); + }); + } };