@@ -223,26 +223,6 @@ module.exports = class DataSourceGenerator extends ArtifactGenerator {
223
223
} ) ;
224
224
}
225
225
226
- install ( ) {
227
- debug ( 'install npm dependencies' ) ;
228
- const pkgs = [ ] ;
229
-
230
- // Connector package.
231
- const connector = connectors [ this . artifactInfo . connector ] ;
232
- if ( connector && connector . package ) {
233
- pkgs . push (
234
- connector . package . name +
235
- `${ connector . package . version ? '@' + connector . package . version : '' } ` ,
236
- ) ;
237
-
238
- debug ( `npmModule - ${ pkgs [ 0 ] } ` ) ;
239
- }
240
-
241
- pkgs . push ( '@loopback/repository' ) ;
242
-
243
- this . npmInstall ( pkgs , { save : true } ) ;
244
- }
245
-
246
226
/**
247
227
* Scaffold DataSource related files
248
228
* super.scaffold() doesn't provide a way to rename files -- don't call it
@@ -304,6 +284,35 @@ module.exports = class DataSourceGenerator extends ArtifactGenerator {
304
284
this . fs . copyTpl ( classTemplatePath , tsPath , this . artifactInfo ) ;
305
285
}
306
286
287
+ install ( ) {
288
+ if ( this . shouldExit ( ) ) return false ;
289
+ debug ( 'install npm dependencies' ) ;
290
+ const pkgJson = this . packageJson || { } ;
291
+ const deps = pkgJson . dependencies || { } ;
292
+ const pkgs = [ ] ;
293
+
294
+ // Connector package.
295
+ const connector = connectors [ this . artifactInfo . connector ] ;
296
+ if ( connector && connector . package ) {
297
+ if ( ! deps [ connector . package . name ] ) {
298
+ pkgs . push (
299
+ connector . package . name +
300
+ `${
301
+ connector . package . version ? '@' + connector . package . version : ''
302
+ } `,
303
+ ) ;
304
+ }
305
+
306
+ debug ( `npmModule - ${ pkgs [ 0 ] } ` ) ;
307
+ }
308
+
309
+ if ( ! deps [ '@loopback/repository' ] ) {
310
+ pkgs . push ( '@loopback/repository' ) ;
311
+ }
312
+
313
+ if ( pkgs . length ) this . npmInstall ( pkgs , { save : true } ) ;
314
+ }
315
+
307
316
async end ( ) {
308
317
await super . end ( ) ;
309
318
}
0 commit comments