Skip to content

Commit

Permalink
Merge pull request #4526 from ember-cli/lazy-load-markdown
Browse files Browse the repository at this point in the history
small improvement to ember init to begin to help with test run times.
  • Loading branch information
stefanpenner committed Jul 25, 2015
2 parents c13e950 + 7cecdff commit 9ef7434
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 19 deletions.
32 changes: 20 additions & 12 deletions lib/commands/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ var Promise = require('../ext/promise');
var SilentError = require('silent-error');
var validProjectName = require('../utilities/valid-project-name');
var normalizeBlueprint = require('../utilities/normalize-blueprint-option');
var debug = require('debug')('ember-cli:command:init');

module.exports = Command.extend({
name: 'init',
Expand Down Expand Up @@ -46,22 +47,26 @@ module.exports = Command.extend({
project: this.project
});

var npmInstall = new this.tasks.NpmInstall({
ui: this.ui,
analytics: this.analytics,
project: this.project
});
if (!commandOptions.skipNpm) {
var npmInstall = new this.tasks.NpmInstall({
ui: this.ui,
analytics: this.analytics,
project: this.project
});
}

var bowerInstall = new this.tasks.BowerInstall({
ui: this.ui,
analytics: this.analytics,
project: this.project
});
if (!commandOptions.skipBower) {
var bowerInstall = new this.tasks.BowerInstall({
ui: this.ui,
analytics: this.analytics,
project: this.project
});
}

var project = this.project;
var packageName = commandOptions.name !== '.' && commandOptions.name || project.name();

if(!packageName) {
if (!packageName) {
var message = 'The `ember ' + this.name + '` command requires a ' +
'package.json in current folder with name attribute or a specified name via arguments. ' +
'For more details, use `ember help`.';
Expand All @@ -83,11 +88,14 @@ module.exports = Command.extend({

blueprintOpts.blueprint = normalizeBlueprint(blueprintOpts.blueprint);

debug('before:installblueprint');
return installBlueprint.run(blueprintOpts)
.then(function() {
debug('after:installblueprint');
if (!commandOptions.skipNpm) {
return npmInstall.run({
verbose: commandOptions.verbose
verbose: commandOptions.verbose,
optional: false
});
}
})
Expand Down
7 changes: 6 additions & 1 deletion lib/models/blueprint.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ var CoreObject = require('core-object');
var EOL = require('os').EOL;
var deprecateUI = require('../utilities/deprecate').deprecateUI;
var bowEpParser = require('bower-endpoint-parser');
var debug = require('debug')('ember-cli:blueprint');
module.exports = Blueprint;

/**
Expand Down Expand Up @@ -489,11 +490,15 @@ Blueprint.prototype.install = function(options) {
this._checkForPod(options.verbose);
this._checkInRepoAddonExists(options.inRepoAddon);

debug('START: processing blueprint: `%s`', this.name);
var start = new Date();
return this._process(
options,
this.beforeInstall,
this.processFiles,
this.afterInstall);
this.afterInstall).finally(function() {
debug('END: processing blueprint: `%s` in (%dms)', this.name, new Date() - start);
}.bind(this));
};

/**
Expand Down
1 change: 0 additions & 1 deletion lib/tasks/install-blueprint.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ module.exports = Task.extend({
var blueprint = Blueprint.lookup(blueprintName, {
paths: this.project.blueprintLookupPaths()
});

return blueprint.install(installOptions);
}
}
Expand Down
3 changes: 2 additions & 1 deletion lib/tasks/npm-task.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ module.exports = Task.extend({
logstream: this.ui.outputStream,
color: 'always',
'save-dev': !!options['save-dev'],
'save-exact': !!options['save-exact']
'save-exact': !!options['save-exact'],
'optional': 'optional' in options ? options.optional : true
};
var packages = options.packages || [];

Expand Down
6 changes: 3 additions & 3 deletions lib/utilities/markdown-color.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

var fs = require('fs');
var existsSync = require('exists-sync');
var markdown = require('markdown-it');
var terminal = require('markdown-it-terminal');

var chalk = require('chalk');
var SilentError = require('silent-error');
var isArray = require('lodash/lang/isArray');
Expand Down Expand Up @@ -41,7 +40,8 @@ function MarkdownColor(options) {
var renderStyles = options && options.renderStyles || chalk;
var tokens = this.generateTokens(renderStyles);
var markdownOptions = options && options.markdownOptions || {};

var markdown = require('markdown-it');
var terminal = require('markdown-it-terminal');
this.options = options || {};
this.markdown = markdown().use(terminal, markdownOptions);
this.tokens = merge(tokens, optionTokens);
Expand Down
2 changes: 1 addition & 1 deletion tests/helpers/acceptance.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ function symLinkDir(projectPath, from, to) {

function applyCommand(command, name /*, ...flags*/) {
var flags = [].slice.call(arguments, 2, arguments.length);
var args = [path.join('..', 'bin', 'ember'), command, '--skip-git', name, onOutput];
var args = [path.join('..', 'bin', 'ember'), command, '--disable-analytics', '--watcher=node', '--skip-git', name, onOutput];

flags.forEach(function(flag) {
args.splice(2, 0, flag);
Expand Down
2 changes: 2 additions & 0 deletions tests/helpers/ember.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ var Cli = require('../../lib/cli');
module.exports = function ember(args) {
var cli;

args.push('--disable-analyitcs');
args.push('--watcher=node');
cli = new Cli({
inputStream: [],
outputStream: [],
Expand Down

0 comments on commit 9ef7434

Please sign in to comment.