Make sure existing packages (and themes) are not deleted when installing a new one on Node.js v8

- When installing a package on Node v8 (or whatever npm version ships with it - v5), all packages not listed in `package.json` are removed. Since we explicitly added `--no-save`, installing a theme would delete the previous one. I am now checking that the file already exists or not. This means that it will still happen to people the next time they run `thelounge install`, because the previous install did not save into `package.json` :/
- Adding `--save` to make sure that the same, correct behavior is done on Node v6 as well (npm v3)
- Adding `--save-exact` for good measure.
This commit is contained in:
Jérémie Astori 2018-01-16 20:25:35 -05:00
parent 33de4840c6
commit 432023fc7e
No known key found for this signature in database
GPG Key ID: B9A4F245CD67BDE8

View File

@ -41,18 +41,22 @@ program
// Create node_modules folder, otherwise npm will start walking upwards to find one // Create node_modules folder, otherwise npm will start walking upwards to find one
fsextra.ensureDirSync(packagesPath); fsextra.ensureDirSync(packagesPath);
// Create package.json with private set to true to avoid npm warnings // Create package.json with private set to true to avoid npm warnings, if
fs.writeFileSync(packagesConfig, JSON.stringify({ // it doesn't exist already
private: true, if (!fs.existsSync(packagesConfig)) {
description: "Packages for The Lounge. All packages in node_modules directory will be automatically loaded.", fs.writeFileSync(packagesConfig, JSON.stringify({
}, null, "\t")); private: true,
description: "Packages for The Lounge. All packages in node_modules directory will be automatically loaded.",
}, null, "\t"));
}
const npm = child.spawn( const npm = child.spawn(
process.platform === "win32" ? "npm.cmd" : "npm", process.platform === "win32" ? "npm.cmd" : "npm",
[ [
"install", "install",
"--production", "--production",
"--no-save", "--save",
"--save-exact",
"--no-bin-links", "--no-bin-links",
"--no-package-lock", "--no-package-lock",
"--no-progress", "--no-progress",