Skip to content

Commit 3b7db55

Browse files
committed
feat(cli): store original cli version in .yo.rc.json
See #3337
1 parent 095166e commit 3b7db55

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

packages/cli/generators/project/templates/.yo-rc.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/cli/lib/base-generator.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,9 +362,17 @@ module.exports = class BaseGenerator extends Generator {
362362
// No incompatible dependencies
363363
return;
364364
}
365+
366+
const originalCliVersion = this.config.get('version') || '<unknown>';
367+
this.log(
368+
chalk.red(
369+
`The project was originally generated by @loopback/cli@${originalCliVersion}.`,
370+
),
371+
);
372+
365373
this.log(
366374
chalk.red(
367-
'The project has dependencies with incompatible versions required by the CLI:',
375+
`The following dependencies are incompatible with @loopback/cli@${cliPkg.version}:`,
368376
),
369377
);
370378
for (const d in incompatibleDeps) {

packages/cli/lib/project-generator.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
const BaseGenerator = require('./base-generator');
88
const utils = require('./utils');
99
const chalk = require('chalk');
10+
const cliVersion = require('../package.json').version;
1011

1112
module.exports = class ProjectGenerator extends BaseGenerator {
1213
// Note: arguments and options should be defined in the constructor.
@@ -211,6 +212,10 @@ module.exports = class ProjectGenerator extends BaseGenerator {
211212
if (this.shouldExit()) return false;
212213

213214
this.destinationRoot(this.projectInfo.outdir);
215+
216+
// Store original cli version in .yo.rc.json
217+
this.config.set('version', cliVersion);
218+
214219
// First copy common files from ../../project/templates
215220
this.copyTemplatedFiles(
216221
this.templatePath('../../project/templates/**/*'),

packages/cli/test/integration/generators/app.integration.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const path = require('path');
1111
const assert = require('yeoman-assert');
1212
const helpers = require('yeoman-test');
1313
const generator = path.join(__dirname, '../../../generators/app');
14+
const cliVersion = require('../../../package.json').version;
1415
const props = {
1516
name: 'my-app',
1617
description: 'My app for LoopBack 4',
@@ -88,6 +89,11 @@ describe('app-generator specific files', () => {
8889
'src/__tests__/acceptance/test-helper.ts',
8990
'+process.env.PORT',
9091
);
92+
assert.jsonFileContent('.yo-rc.json', {
93+
'@loopback/cli': {
94+
version: cliVersion,
95+
},
96+
});
9197
});
9298

9399
it('generates database migration script', () => {

0 commit comments

Comments
 (0)