1
- const { isAngular, isTypeScript , isSass } = require ( "./projectHelpers" ) ;
1
+ const { isAngular } = require ( "./projectHelpers" ) ;
2
2
3
3
const NEW_DEPS_MESSAGE = `\
4
4
A few new dependencies were added. \
@@ -21,10 +21,6 @@ You can also pass the "--env.uglify" flag to use UglifyJS for minification.
21
21
For more information check out https://docs.nativescript.org/tooling/bundling-with-webpack#bundling.
22
22
` ;
23
23
24
- function forceUpdateProjectDeps ( packageJson ) {
25
- return addProjectDeps ( packageJson , true ) ;
26
- }
27
-
28
24
function addProjectDeps ( packageJson , force = false ) {
29
25
packageJson . devDependencies = packageJson . devDependencies || { } ;
30
26
const postinstallOptions = {
@@ -41,6 +37,35 @@ function addProjectDeps(packageJson, force = false) {
41
37
return postinstallOptions ;
42
38
}
43
39
40
+ function forceUpdateProjectDeps ( packageJson ) {
41
+ removeObsoleteDeps ( packageJson ) ;
42
+
43
+ return addProjectDeps ( packageJson , true ) ;
44
+ }
45
+
46
+ function removeObsoleteDeps ( packageJson ) {
47
+ const depsToRemove = [
48
+ "webpack" ,
49
+ "webpack-cli" ,
50
+ "webpack-bundle-analyzer" ,
51
+ "webpack-sources" ,
52
+ "clean-webpack-plugin" ,
53
+ "copy-webpack-plugin" ,
54
+ "raw-loader" ,
55
+ "css-loader" ,
56
+ "nativescript-worker-loader" ,
57
+ "extract-text-webpack-plugin" ,
58
+ "uglifyjs-webpack-plugin" ,
59
+ "@ngtools/webpack" ,
60
+ "@angular-devkit/core" ,
61
+ "resolve-url-loader" ,
62
+ "awesome-typescript-loader" ,
63
+ "sass-loader" ,
64
+ ] ;
65
+
66
+ depsToRemove . forEach ( dep => delete packageJson . devDependencies [ dep ] ) ;
67
+ }
68
+
44
69
function addDependency ( deps , name , version , force ) {
45
70
const options = { deps } ;
46
71
@@ -57,36 +82,12 @@ function addDependency(deps, name, version, force) {
57
82
}
58
83
59
84
function getRequiredDeps ( packageJson ) {
60
- const deps = {
61
- "webpack" : "~4.6.0" ,
62
- "webpack-cli" : "~2.1.3" ,
63
- "webpack-bundle-analyzer" : "~2.13.0" ,
64
- "webpack-sources" : "~1.1.0" ,
65
- "clean-webpack-plugin" : "~0.1.19" ,
66
- "copy-webpack-plugin" : "~4.5.1" ,
67
- "raw-loader" : "~0.5.1" ,
68
- "css-loader" : "~0.28.11" ,
69
- "nativescript-worker-loader" : "~0.9.0" ,
70
- "extract-text-webpack-plugin" : "~3.0.2" ,
71
- "uglifyjs-webpack-plugin" : "~1.2.5" ,
72
- } ;
73
-
74
- if ( isAngular ( { packageJson} ) ) {
75
- Object . assign ( deps , {
76
- "@angular/compiler-cli" : packageJson . dependencies [ "@angular/core" ] ,
77
- "@ngtools/webpack" : "~6.1.0-beta.1" ,
78
- "@angular-devkit/core" : "~0.7.0-beta.1" ,
79
- "resolve-url-loader" : "~2.3.0" ,
80
- } ) ;
81
- } else if ( isTypeScript ( { packageJson} ) ) {
82
- Object . assign ( deps , { "awesome-typescript-loader" : "~5.0.0" } ) ;
83
- }
84
-
85
- if ( isSass ( { packageJson} ) ) {
86
- Object . assign ( deps , { "sass-loader" : "~7.0.1" } ) ;
87
- }
88
-
89
- return deps ;
85
+ return isAngular ( { packageJson} ) ?
86
+ {
87
+ "@angular-devkit/build-angular" : "~0.7.0-rc.0" ,
88
+ "@angular/compiler-cli" : "~6.1.0-beta.1" ,
89
+ } :
90
+ { } ;
90
91
}
91
92
92
93
function showHelperMessages ( { newDepsAdded, hasOldDeps } ) {
0 commit comments