Skip to content
This repository was archived by the owner on Aug 7, 2021. It is now read-only.

Commit 68bb6b5

Browse files
committed
refactor: make the update-ns-webpack script remove obsolete deps
1 parent ba7fae8 commit 68bb6b5

File tree

2 files changed

+36
-49
lines changed

2 files changed

+36
-49
lines changed

dependencyManager.js

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { isAngular, isTypeScript, isSass } = require("./projectHelpers");
1+
const { isAngular } = require("./projectHelpers");
22

33
const NEW_DEPS_MESSAGE = `\
44
A few new dependencies were added. \
@@ -21,10 +21,6 @@ You can also pass the "--env.uglify" flag to use UglifyJS for minification.
2121
For more information check out https://docs.nativescript.org/tooling/bundling-with-webpack#bundling.
2222
`;
2323

24-
function forceUpdateProjectDeps(packageJson) {
25-
return addProjectDeps(packageJson, true);
26-
}
27-
2824
function addProjectDeps(packageJson, force = false) {
2925
packageJson.devDependencies = packageJson.devDependencies || {};
3026
const postinstallOptions = {
@@ -41,6 +37,35 @@ function addProjectDeps(packageJson, force = false) {
4137
return postinstallOptions;
4238
}
4339

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+
4469
function addDependency(deps, name, version, force) {
4570
const options = { deps };
4671

@@ -57,36 +82,12 @@ function addDependency(deps, name, version, force) {
5782
}
5883

5984
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+
{ };
9091
}
9192

9293
function showHelperMessages({ newDepsAdded, hasOldDeps }) {

projectHelpers.js

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,6 @@ const isAngular = ({ projectDir, packageJson } = {}) => {
2828
.some(dependency => /^@angular\b/.test(dependency));
2929
};
3030

31-
const isSass = ({ projectDir, packageJson } = {}) => {
32-
packageJson = packageJson || getPackageJson(projectDir);
33-
const SASS_PLUGIN_NAME = "nativescript-dev-sass";
34-
35-
return (
36-
packageJson.dependencies &&
37-
packageJson.dependencies.hasOwnProperty(SASS_PLUGIN_NAME)
38-
) || (
39-
packageJson.devDependencies &&
40-
packageJson.devDependencies.hasOwnProperty(SASS_PLUGIN_NAME)
41-
);
42-
};
43-
4431
const getWebpackConfig = (projectDir, env, configPath = "webpack.config.js") => {
4532
const configAbsolutePath = resolve(projectDir, configPath);
4633
let config;
@@ -112,7 +99,6 @@ module.exports = {
11299
isAndroid,
113100
isIos,
114101
isAngular,
115-
isSass,
116102
isTypeScript,
117103
writePackageJson,
118104
};

0 commit comments

Comments
 (0)