@@ -29,7 +29,7 @@ function addDependency(deps, name, version, force) {
29
29
}
30
30
31
31
function getRequiredDeps ( packageJson ) {
32
- var deps = {
32
+ let deps = {
33
33
"webpack" : "~2.3.3" ,
34
34
"webpack-sources" : "~0.2.3" ,
35
35
"copy-webpack-plugin" : "~4.0.1" ,
@@ -40,15 +40,60 @@ function getRequiredDeps(packageJson) {
40
40
} ;
41
41
42
42
if ( helpers . isAngular ( { packageJson} ) ) {
43
- deps [ "@angular/compiler-cli" ] = "~4.0.2" ;
44
- deps [ "@ngtools/webpack" ] = "1.3.0" ;
45
- deps [ "typescript" ] = "~2.2.2" ;
43
+ const angularDeps = resolveAngularDeps ( packageJson . dependencies ) ;
44
+ deps = Object . assign ( deps , angularDeps ) ;
46
45
} else if ( helpers . isTypeScript ( { packageJson} ) ) {
47
46
deps [ "awesome-typescript-loader" ] = "~3.1.2" ;
48
47
}
48
+
49
49
return deps ;
50
50
}
51
51
52
+ function resolveAngularDeps ( usedDependencies ) {
53
+ let depsToAdd = {
54
+ "@angular/compiler-cli" : usedDependencies [ "@angular/core" ] ,
55
+ } ;
56
+ const tnsModulesVersion = getVersionNumber ( usedDependencies [ "tns-core-modules" ] ) ;
57
+ const angularCoreVersion = getVersionNumber ( usedDependencies [ "@angular/core" ] ) ;
58
+
59
+ if ( angularCoreVersion . startsWith ( "2." ) ) {
60
+ Object . assign ( depsToAdd , {
61
+ "typescript" : "~2.1.6" ,
62
+ "@ngtools/webpack" : "1.2.10" ,
63
+ } ) ;
64
+ } else if ( tnsModulesVersion . startsWith ( "2." ) ) {
65
+ Object . assign ( depsToAdd , {
66
+ "typescript" : "~2.1.6" ,
67
+ "@ngtools/webpack" : "1.2.13" ,
68
+ } ) ;
69
+ } else {
70
+ Object . assign ( depsToAdd , {
71
+ "typescript" : "~2.2.2" ,
72
+ "@ngtools/webpack" : "1.3.0" ,
73
+ } ) ;
74
+ }
75
+
76
+ return depsToAdd ;
77
+ }
78
+
79
+ function getVersionWithoutPatch ( version ) {
80
+ if ( ! version ) {
81
+ return "" ;
82
+ }
83
+
84
+ if ( version === "next" || version === "latest" || version === "rc" ) {
85
+ return version ;
86
+ }
87
+
88
+ version = version . substring ( 0 , version . lastIndexOf ( "." ) ) ;
89
+
90
+ if ( version . startsWith ( "~" ) || version . startsWith ( "^" ) ) {
91
+ return version . substring ( 1 ) ;
92
+ } else {
93
+ return version ;
94
+ }
95
+ }
96
+
52
97
module . exports = {
53
98
forceUpdateProjectDeps,
54
99
addProjectDeps,
0 commit comments