From 087bac5149885ac85e53ba392e62df6943a9f54a Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Wed, 1 Mar 2023 08:09:33 -0500 Subject: [PATCH] Add comment Signed-off-by: Sebastian Malton --- .../install-extension/install-extension.injectable.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/core/src/extensions/install-extension/install-extension.injectable.ts b/packages/core/src/extensions/install-extension/install-extension.injectable.ts index 665cc9a59b..ca46772eb3 100644 --- a/packages/core/src/extensions/install-extension/install-extension.injectable.ts +++ b/packages/core/src/extensions/install-extension/install-extension.injectable.ts @@ -65,6 +65,16 @@ const installExtensionInjectable = getInjectable({ const packageJsonPath = joinPaths(extensionPackageRootDirectory, "package.json"); + /** + * NOTES: + * - We have to keep the `package.json` because `npm install` removes files from `node_modules` + * if they are no longer in the `package.json` + * - In v6.2.X we saved bundled extensions as `"dependencies"` and external extensions as + * `"optionalDependencies"` at startup. This was done because `"optionalDependencies"` can + * fail to install and that is OK. + * - We continue to maintain this behavior here by only installing new dependencies as + * `"optionalDependencies"` + */ const fixupPackageJson = once(async () => { try { const packageJson = await readJsonFile(packageJsonPath) as PackageJson;