Skip to content

Commit 58c9dbf

Browse files
committed
chore(gen): make sure users are using yo >= 1.7.1
1 parent bf649ab commit 58c9dbf

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

Diff for: src/generators/app/index.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export class Generator extends Base {
3939
this.filters = {};
4040

4141
// init shared generator properies and methods
42-
genBase(this);
42+
const genBasePromise = genBase(this);
4343

4444
insight.track('generator', this.rootGeneratorVersion());
4545
this.nodeVersion = semver.clean(process.version);
@@ -53,10 +53,12 @@ export class Generator extends Base {
5353
insight.askPermission(null, cb);
5454
}
5555

56-
return runCmd('npm --version').then(stdout => {
56+
const npmVersionPromise = runCmd('npm --version').then(stdout => {
5757
this.npmVersion = stdout.toString().trim();
5858
return insight.track('npm', this.npmVersion);
5959
});
60+
61+
return Promise.all([genBasePromise, npmVersionPromise]);
6062
},
6163
info: function () {
6264
this.log(this.yoWelcome);

Diff for: src/generators/generator-base.js

+16-7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import util from 'util';
44
import path from 'path';
55
import lodash from 'lodash';
66
import s from 'underscore.string';
7+
import semver from 'semver';
78
import yoWelcome from 'yeoman-welcome';
89
import * as genUtils from './util';
910

@@ -13,6 +14,12 @@ lodash.mixin(s.exports());
1314
export function genBase(self) {
1415
self = self || this;
1516

17+
let yoCheckPromise = genUtils.runCmd('yo --version').then(stdout => {
18+
if(!semver.satisfies(semver.clean(stdout), '>= 1.7.1')) {
19+
throw new Error('ERROR: You need to update yo to at least 1.7.1 (npm i -g yo)');
20+
}
21+
});
22+
1623
self.lodash = lodash;
1724
self.yoWelcome = yoWelcome;
1825

@@ -46,19 +53,21 @@ export function genBase(self) {
4653
self.processDirectory = genUtils.processDirectory.bind(self);
4754
// rewrite a file in place
4855
self.rewriteFile = genUtils.rewriteFile;
56+
57+
return yoCheckPromise;
4958
}
5059

5160
export function genNamedBase(self) {
5261
self = self || this;
5362

5463
// extend genBase
55-
genBase(self);
56-
57-
var name = self.name.replace(/\//g, '-');
64+
return genBase(self).then(() => {
65+
var name = self.name.replace(/\//g, '-');
5866

59-
self.cameledName = lodash.camelize(name);
60-
self.classedName = lodash.classify(name);
67+
self.cameledName = lodash.camelize(name);
68+
self.classedName = lodash.classify(name);
6169

62-
self.basename = path.basename(self.name);
63-
self.dirname = (self.name.indexOf('/') >= 0) ? path.dirname(self.name) : self.name;
70+
self.basename = path.basename(self.name);
71+
self.dirname = (self.name.indexOf('/') >= 0) ? path.dirname(self.name) : self.name;
72+
});
6473
}

0 commit comments

Comments
 (0)