-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support a single NE instance per solution on Linux, too (OSOE-430) #17
Comments
Is this still relevant? |
Yes, but I'll have to update it. Will do later. |
Can you please update this? |
Done. |
Thanks! |
Is this related to the OSOCE Linux builds taking roughly the same time as the Windows ones? |
Yes. |
Does your work under #39 overlap with this? |
No. |
Just to put anyone picking this up on the right track: The source of this functionality breaking on Linux is the fact that the symlink'ed directories node_modules\nodejs-extensions underneath each project are resolved to the central installation directory of NE, which will be OSOCE\node_modules.nx. We use directory traversal via I've already started to fix this issue by adding a custom script, I'll leave the PRs open as they are because they already point in the right direction. |
This is attempted again under #78. |
The OSOCE build time can be significantly reduced by using a single copy of the Node.js Extensions NPM package instead of one for every project which uses NE. This only applies to the usage via submodule, though.
The idea is to use an MSBuild property to trigger the NPM package installation as part of the Node.js Extensions project build rather than as part of the build of its dependent projects. Since all dependent projects will be built AFTER NE itself, there's no issue with concurrency or locking.
Once NE has its NPM package installed, all dependent module can simply link to that installation (using pnpm) which is a fast and cheap operation.
This will save several tens of seconds per project. Taking into account parallel builds, it should yield a speed-up of 1 to 3 minutes per build. And it does.
Linux support currently disabled
The above has been implemented in v1.0.0 of the module, but had to be deactivated for Linux builds due to the different handling of symlinked directories, which breaks the support for a single NE installation.
This should be fixed.
Jira issue
The text was updated successfully, but these errors were encountered: