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

Commit 9b102c3

Browse files
committed
feat: detect required devDeps versions
The plugin will automatically add devDependencies on postinstall, based on already used dependencies. More information can be found in the README
1 parent 7451545 commit 9b102c3

File tree

3 files changed

+51
-6
lines changed

3 files changed

+51
-6
lines changed
File renamed without changes.

Diff for: dependencyManager.js

+49-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function addDependency(deps, name, version, force) {
2929
}
3030

3131
function getRequiredDeps(packageJson) {
32-
var deps = {
32+
let deps = {
3333
"webpack": "~2.3.3",
3434
"webpack-sources": "~0.2.3",
3535
"copy-webpack-plugin": "~4.0.1",
@@ -40,15 +40,60 @@ function getRequiredDeps(packageJson) {
4040
};
4141

4242
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);
4645
} else if (helpers.isTypeScript({packageJson})) {
4746
deps["awesome-typescript-loader"] = "~3.1.2";
4847
}
48+
4949
return deps;
5050
}
5151

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+
5297
module.exports = {
5398
forceUpdateProjectDeps,
5499
addProjectDeps,

Diff for: package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
"bin": {
2020
"install-ns-webpack": "./bin/install-ns-webpack",
2121
"remove-ns-webpack": "./bin/remove-ns-webpack",
22+
"update-ns-webpack": "./bin/update-ns-webpack",
2223
"ns-bundle": "./bin/ns-bundle",
23-
"ns-verify-bundle": "./bin/ns-verify-bundle",
24-
"ns-webpack-update": "./bin/ns-webpack-update"
24+
"ns-verify-bundle": "./bin/ns-verify-bundle"
2525
},
2626
"dependencies": {},
2727
"devDependencies": {}

0 commit comments

Comments
 (0)