45 Commits

Author SHA1 Message Date
Jack Hsu
8b1c78caa5
fix(module-federation): do not cache assets from static serve (#27005)
We're currently caching files for an hour when serving the host with
static remotes. This PR fixes the issue by setting `cacheSeconds: -1` on
the static server (disables cache).

This affects development only.
<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-07-19 10:39:32 -04:00
Colum Ferry
a549b9b0c9
feat(module-federation): use proxy servers to proxy to single file server for static remotes (#26782)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
Remotes that are served for a host are usually served from a single file
server running on a single port.
We perform some mapping logic during the build of the host application
to update the locations the remotes can be found at to point to the
single file server.

This works, but it's also wrong, as it breaks the flow that users
expect.
It also breaks dynamic remotes.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Continue to serve the remotes from a single file server, as this helps
reduce the amount of resources used on developers machines.
Use express to create proxy servers that will proxy requests from the
original remote location to the single file server.

This allows applications to continue to work without us having to
interfere and map any remote locations.
It also solves the issue with dynamic remotes.


## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #26318
2024-07-18 13:46:06 -04:00
Colum Ferry
483bcf3465
feat(module-federation): add nx-runtime-library-control-plugin (#26816)
- feat(module-federation): use @module-federation/enhanced for
withModuleFederation
- feat(module-federation): expose API for users to override module
federation plugin options
- fix(module-federation): angular mf ssr projects should not create
vendor chunks
- feat(module-federation): add nx-runtime-library-control-plugin

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
A common occurrence when working with NX Module Federation is that a
shared library may get resolved from a static remote.
Any changes to the shared lib are therefore not reflected in the dev
server.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Add the `nx-runtime-library-control-plugin` to ensure that shared
libraries are shared from a remote that is served via
webpack-dev-server.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #11615
2024-07-17 22:46:14 -04:00
Josh Kim
93b3e2142c
fix(module-federation): module-federation-dev-server hang caused by child process exiting too early (#26684) (#26685)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
See #26684 

## Expected Behavior
See #26684

Fixes #26684 

---

This fix is targeted at NX 19. For a backport to NX 18, a small, trivial
change is necessary. I will file another PR targeting NX 18.

---------

Co-authored-by: Colum Ferry <cferry09@gmail.com>
2024-06-26 10:04:55 +01:00
Craigory Coppola
5e39cb0019
feat(core): allow partially resetting workspace (#23381) 2024-06-04 18:55:10 -04:00
Vadim Goy
b9e190d22b
fix(react): full support custom secure host for module federation (#25288)
## Related Issue(s)

Fixes #
https://github.com/nrwl/nx/issues/21210

Co-authored-by: Vadim Goy <vadim.goy@zoominfo.com>
2024-05-28 09:48:36 +01:00
Robin Csutorás
a08133f440
feat(module-federation): add remote configuration override (#19694)
## Current Behavior

The configuration of the served MFE always passed to the remotes. If a
new configuration is needed to skip one remote (e.g.
`serve:skip-remote1`) but `remote2` then a configuration called
`skip-remote1` is needed in the `remote2`.

## Expected Behavior

Add an ability to override the configuration and the empty
configurations in the remotes can be deleted.

## Related Issue(s)

Fixes #19693
2024-05-08 18:52:37 +01:00
Colum Ferry
640c61dd1a
fix(module-federation): serve dynamic remotes statically in their own processes (#22688) 2024-04-05 11:58:32 -04:00
Jack Hsu
5381742379
feat(webpack): create build log for remotes to help debug errors (#22539) 2024-03-27 15:12:58 -04:00
Jack Hsu
317ef2e275
fix(webpack): surface original error when remotes fail to start (#21919) 2024-02-21 13:31:53 -05:00
Vadim Goy
499659c092
fix(react): full support custom secure host for module federation (#21777)
Co-authored-by: Vadim Goy <vadim.goy@zoominfo.com>
2024-02-13 11:06:08 -05:00
Leosvel Pérez Espinosa
7f4c97e5a7
fix(module-federation): map static remote locations correctly (#21709) 2024-02-08 17:12:51 +01:00
John Wiegert
53087370f1
fix(module-federation): fix static remote port determination (#20432) 2023-11-30 12:17:09 -07:00
Colum Ferry
2354577bd2
fix(module-federation): host with no remotes should not build remote apps (#20283) 2023-11-21 15:34:00 +00:00
Colum Ferry
24b245b2d5
fix(module-federation): single file server should use project name for directory (#20278) 2023-11-20 10:21:54 +00:00
Colum Ferry
a73e9fd562
feat(module-federation): use single file-server for static remotes (#20006) 2023-11-10 11:25:09 -05:00
Colum Ferry
1338a7c133
feat(module-federation): use nx run-many to build static remotes in parallel (#19987) 2023-11-06 16:25:33 +00:00
Nicholas Cunningham
812cffe364
fix(core): ensure require.resolve('nx') resolves correctly (#19800) 2023-10-23 14:09:51 -06:00
Colum Ferry
97fac1b0b4
feat(react): add recursive remote serve (#19638) 2023-10-17 14:33:28 +01:00
Colum Ferry
14643b68b5
feat(react): use TS config files for module federation (#19455) 2023-10-12 11:42:41 -04:00
Craigory Coppola
6946f65059
fix(misc): pass full path to tsconfig when registering transpiler (#19451) 2023-10-06 14:40:15 -04:00
Colum Ferry
a11e8f1bb2
fix(web): disable tsnode service after loading config (#19387)
Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2023-10-03 13:28:58 -04:00
Craigory Coppola
a18dd48510
chore(react): pass full context to parseTargetString (#19156) 2023-09-20 09:07:21 -04:00
Koen Van Geert
01ef42bc44
fix(react): timeout after 20 min waiting for remote (#18099)
Co-authored-by: Emily Xiong <xiongemi@gmail.com>
2023-07-27 09:44:56 -04:00
Miroslav Jonas
e05ca1fd2f fix(nx-dev): fix rebase 2023-07-25 15:09:46 +02:00
Miroslav Jonas
42a06b67d2 feat(nx-dev): restructure recipes 2023-07-25 15:09:46 +02:00
Colum Ferry
77bb4b7429
feat(angular): add support for TS Module Federation Config #15739 (#17876) 2023-07-12 16:14:52 +01:00
Colum Ferry
c64f26ef3c
fix(angular): automatically skip remotes not in the current workspace #17473 (#17497) 2023-07-05 16:57:40 +01:00
Jack Hsu
7cc67a3557
fix(react): use fork for module-federation-dev-server so processes are cleaned up correctly (#17194) 2023-05-25 15:38:14 +03:00
Craigory Coppola
d030a21d37
feat(misc): allow patterns matching for dev remotes and skip remotes (#17185) 2023-05-24 16:12:37 -04:00
Jack Hsu
c97502af3a
feat(react): run remote serve in parallel to speed up server startup (#17112) 2023-05-24 08:57:47 -04:00
Jason Jean
76dfc62412
feat(web): replace usages of @nrwl with @nx (#16376) 2023-04-19 10:59:41 -04:00
Jason Jean
2d195007b0
feat(core): switch packages to use the @nx scope (#16069) 2023-04-14 19:56:37 -04:00
Ronaldo Maciel
ba7377595f
fix(react): fix skipRemotes in moduleFederationDevServer (#14172)
Co-authored-by: rsmaciel <rsmaciel@rederecord.com.br>
2023-02-22 16:45:26 +02:00
Victor Savkin
422c8c735a cleanup(core): clearly split nx.json config and projects config 2023-01-05 15:35:36 -05:00
Jack Hsu
8df1834f2c
feat(react): add nx.server.ready message from Node process to any potential parent process (#13808) 2022-12-13 23:02:20 -05:00
Jack Hsu
cded83b2c5
feat(react): remove unnecessary dependencies from @nrwl/react (#13525) 2022-12-01 17:06:32 -05:00
Jack Hsu
23e4fc77c9
feat(react): add SSR support to React apps (#13234) 2022-11-21 14:22:05 -05:00
Colum Ferry
f08a3c3c44
feat(react): add skipRemotes option to module-federation-dev-server (#13090) 2022-11-09 19:07:19 +00:00
Jack Hsu
4b491c86f2
fix(web): update http-server lookup so it works with pnpm (#12269) 2022-09-28 09:37:35 -04:00
Jack Hsu
f49769a34a
feat(webpack): add webpack plugin (#11966) 2022-09-12 21:19:50 +01:00
Colum Ferry
a299469925
feat(angular): support alternate remote entry filenames #10206 (#10432) 2022-05-24 12:16:33 +01:00
Jack Hsu
c4e5b7c7c0
fix(react): host server exits when one of the remotes fail (#10185) 2022-05-06 12:41:40 -04:00
Jack Hsu
e32932d267
feat(react): add ability to serve remote apps in dev or static mode (#9893) 2022-04-20 12:27:49 -04:00
Jack Hsu
586501aa35
chore(react): update MFE language to module federation (#9888) 2022-04-19 20:48:49 +00:00