@nx/react 0.0.0-pr-31222-862e973 → 0.0.0-pr-31313-387cdca

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/generators.json +9 -13
  4. package/index.d.ts +1 -2
  5. package/index.js +2 -5
  6. package/mf/dynamic-federation.d.ts +64 -0
  7. package/mf/dynamic-federation.js +64 -0
  8. package/migrations.json +80 -148
  9. package/module-federation.d.ts +6 -4
  10. package/module-federation.js +16 -7
  11. package/package.json +11 -11
  12. package/plugins/bundle-rollup.js +4 -1
  13. package/plugins/component-testing/index.js +1 -1
  14. package/plugins/jest.js +6 -11
  15. package/plugins/nx-react-webpack-plugin/lib/apply-react-config.js +6 -22
  16. package/plugins/storybook/index.js +1 -2
  17. package/plugins/with-react.d.ts +4 -0
  18. package/router-plugin.d.ts +1 -0
  19. package/router-plugin.js +5 -0
  20. package/src/executors/module-federation-dev-server/lib/index.d.ts +2 -0
  21. package/src/executors/module-federation-dev-server/lib/index.js +5 -0
  22. package/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +4 -0
  23. package/src/executors/module-federation-dev-server/lib/normalize-options.js +19 -0
  24. package/src/executors/module-federation-dev-server/lib/start-remotes.d.ts +5 -0
  25. package/src/executors/module-federation-dev-server/lib/start-remotes.js +33 -0
  26. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +1 -1
  27. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +6 -110
  28. package/src/executors/module-federation-dev-server/schema.d.ts +9 -7
  29. package/src/executors/module-federation-dev-server/schema.json +15 -10
  30. package/src/executors/module-federation-ssr-dev-server/lib/index.d.ts +2 -0
  31. package/src/executors/module-federation-ssr-dev-server/lib/index.js +5 -0
  32. package/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +4 -0
  33. package/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +23 -0
  34. package/src/executors/module-federation-ssr-dev-server/lib/start-remotes.d.ts +5 -0
  35. package/src/executors/module-federation-ssr-dev-server/lib/start-remotes.js +34 -0
  36. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +1 -17
  37. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +5 -153
  38. package/src/executors/module-federation-ssr-dev-server/schema.d.ts +29 -0
  39. package/src/executors/module-federation-ssr-dev-server/schema.json +14 -9
  40. package/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts +2 -2
  41. package/src/executors/module-federation-static-server/module-federation-static-server.impl.js +11 -12
  42. package/src/executors/module-federation-static-server/schema.json +2 -1
  43. package/src/generators/application/application.d.ts +3 -3
  44. package/src/generators/application/application.js +108 -186
  45. package/src/generators/application/files/base-rsbuild/src/app/__fileName__.spec.tsx__tmpl__ +10 -0
  46. package/src/generators/application/files/base-rsbuild/src/assets/.gitkeep +0 -0
  47. package/src/generators/application/files/base-rsbuild/src/favicon.ico +0 -0
  48. package/src/generators/application/files/base-rsbuild/src/index.html +14 -0
  49. package/src/generators/application/files/base-rsbuild/src/main.tsx__tmpl__ +32 -0
  50. package/src/generators/application/files/base-rsbuild/tsconfig.app.json__tmpl__ +31 -0
  51. package/src/generators/application/files/base-rspack/rspack.config.js__tmpl__ +53 -0
  52. package/src/generators/application/files/base-rspack/src/app/__fileName__.spec.tsx__tmpl__ +3 -3
  53. package/src/generators/application/files/base-rspack/src/main.tsx__tmpl__ +27 -5
  54. package/src/generators/application/files/base-rspack/tsconfig.app.json__tmpl__ +21 -4
  55. package/src/generators/application/files/base-vite/src/app/__fileName__.spec.tsx__tmpl__ +3 -3
  56. package/src/generators/application/files/base-vite/src/main.tsx__tmpl__ +31 -6
  57. package/src/generators/application/files/base-vite/tsconfig.app.json__tmpl__ +20 -3
  58. package/src/generators/application/files/base-webpack/src/app/__fileName__.spec.tsx__tmpl__ +3 -3
  59. package/src/generators/application/files/base-webpack/src/main.tsx__tmpl__ +22 -2
  60. package/src/generators/application/files/base-webpack/tsconfig.app.json__tmpl__ +21 -4
  61. package/src/generators/application/files/base-webpack/webpack.config.js__tmpl__ +4 -4
  62. package/src/generators/application/files/react-router-ssr/common/app/app-nav.tsx__tmpl__ +14 -0
  63. package/src/generators/application/files/react-router-ssr/common/app/entry.client.tsx__tmpl__ +18 -0
  64. package/src/generators/application/files/react-router-ssr/common/app/entry.server.tsx__tmpl__ +74 -0
  65. package/src/generators/application/files/react-router-ssr/common/app/root.tsx__tmpl__ +51 -0
  66. package/src/generators/application/files/react-router-ssr/common/app/routes/about.tsx__tmpl__ +7 -0
  67. package/src/generators/application/files/react-router-ssr/common/app/routes.tsx__tmpl__ +6 -0
  68. package/src/generators/application/files/react-router-ssr/common/public/favicon.ico +0 -0
  69. package/src/generators/application/files/react-router-ssr/common/react-router.config.ts__tmpl__ +5 -0
  70. package/src/generators/application/files/react-router-ssr/common/tests/routes/_index.spec.tsx__tmpl__ +16 -0
  71. package/src/generators/application/files/react-router-ssr/common/tsconfig.app.json__tmpl__ +23 -0
  72. package/src/generators/application/files/react-router-ssr/common/tsconfig.json__tmpl__ +27 -0
  73. package/src/generators/application/files/react-router-ssr/non-root/.gitignore__tmpl__ +5 -0
  74. package/src/generators/application/files/react-router-ssr/non-root/package.json__tmpl__ +21 -0
  75. package/src/generators/application/files/react-router-ssr/nx-welcome/claimed/app/nx-welcome.tsx__tmpl__ +866 -0
  76. package/src/generators/application/files/react-router-ssr/nx-welcome/not-configured/app/nx-welcome.tsx__tmpl__ +866 -0
  77. package/src/generators/application/files/react-router-ssr/nx-welcome/unclaimed/app/nx-welcome.tsx__tmpl__ +864 -0
  78. package/src/generators/application/files/react-router-ssr/ts-solution/package.json__tmpl__ +21 -0
  79. package/src/generators/application/files/react-router-ssr/ts-solution/tsconfig.app.json__tmpl__ +39 -0
  80. package/src/generators/application/files/style-css-module/src/app/__fileName__.tsx__tmpl__ +28 -18
  81. package/src/generators/application/files/style-global-css/src/app/__fileName__.tsx__tmpl__ +29 -20
  82. package/src/generators/application/files/style-none/src/app/__fileName__.tsx__tmpl__ +26 -16
  83. package/src/generators/application/files/style-styled-jsx/src/app/__fileName__.tsx__tmpl__ +31 -22
  84. package/src/generators/application/files/style-styled-module/src/app/__fileName__.tsx__tmpl__ +30 -21
  85. package/src/generators/application/files/style-tailwind/src/app/__fileName__.tsx__tmpl__ +29 -19
  86. package/src/generators/application/lib/add-e2e.d.ts +1 -1
  87. package/src/generators/application/lib/add-e2e.js +74 -65
  88. package/src/generators/application/lib/add-jest.js +27 -2
  89. package/src/generators/application/lib/add-linting.d.ts +4 -0
  90. package/src/generators/application/lib/add-linting.js +86 -0
  91. package/src/generators/application/lib/add-project.js +112 -6
  92. package/src/generators/application/lib/add-routing.js +1 -1
  93. package/src/generators/application/lib/bundlers/add-rsbuild.d.ts +4 -0
  94. package/src/generators/application/lib/bundlers/add-rsbuild.js +63 -0
  95. package/src/generators/application/lib/bundlers/add-rspack.d.ts +4 -0
  96. package/src/generators/application/lib/bundlers/add-rspack.js +37 -0
  97. package/src/generators/application/lib/bundlers/add-vite.d.ts +4 -0
  98. package/src/generators/application/lib/bundlers/add-vite.js +76 -0
  99. package/src/generators/application/lib/bundlers/add-webpack.d.ts +3 -0
  100. package/src/generators/application/lib/bundlers/add-webpack.js +18 -0
  101. package/src/generators/application/lib/create-application-files.d.ts +61 -0
  102. package/src/generators/application/lib/create-application-files.js +102 -19
  103. package/src/generators/application/lib/get-app-tests.js +10 -11
  104. package/src/generators/application/lib/install-common-dependencies.d.ts +1 -1
  105. package/src/generators/application/lib/install-common-dependencies.js +18 -4
  106. package/src/generators/application/lib/normalize-options.d.ts +1 -3
  107. package/src/generators/application/lib/normalize-options.js +17 -19
  108. package/src/generators/application/lib/update-jest-config.js +5 -0
  109. package/src/generators/application/schema.d.ts +12 -6
  110. package/src/generators/application/schema.json +44 -42
  111. package/src/generators/component/component.d.ts +0 -1
  112. package/src/generators/component/component.js +19 -37
  113. package/src/generators/component/files/__fileName__.__ext__ +83 -0
  114. package/src/generators/component/lib/normalize-options.js +13 -15
  115. package/src/generators/component/schema.d.ts +13 -25
  116. package/src/generators/component/schema.json +13 -49
  117. package/src/generators/component-story/component-story.js +1 -2
  118. package/src/generators/component-story/files/jsx/__componentFileName__.stories.jsx__tmpl__ +5 -5
  119. package/src/generators/component-story/files/tsx/__componentFileName__.stories.tsx__tmpl__ +3 -4
  120. package/src/generators/component-test/component-test.js +1 -1
  121. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +0 -2
  122. package/src/generators/cypress-component-configuration/lib/add-files.d.ts +1 -1
  123. package/src/generators/cypress-component-configuration/lib/add-files.js +7 -4
  124. package/src/generators/federate-module/federate-module.js +12 -22
  125. package/src/generators/federate-module/schema.d.ts +0 -1
  126. package/src/generators/federate-module/schema.json +13 -12
  127. package/src/generators/hook/files/{__fileName__.ts__tmpl__ → __fileName__.__ext__} +3 -1
  128. package/src/generators/hook/hook.d.ts +0 -1
  129. package/src/generators/hook/hook.js +35 -83
  130. package/src/generators/hook/schema.d.ts +4 -17
  131. package/src/generators/hook/schema.json +19 -46
  132. package/src/generators/host/files/common/src/app/__fileName__.js__tmpl__ +28 -21
  133. package/src/generators/host/files/common/src/main.js__tmpl__ +12 -9
  134. package/src/generators/host/files/common-ts/src/app/__fileName__.tsx__tmpl__ +28 -28
  135. package/src/generators/host/files/common-ts/src/main.ts__tmpl__ +12 -9
  136. package/src/generators/host/files/rspack-common/src/app/__fileName__.jsx__tmpl__ +22 -13
  137. package/src/generators/host/files/rspack-common/src/main.jsx__tmpl__ +12 -9
  138. package/src/generators/host/files/rspack-module-federation/module-federation.config.js__tmpl__ +8 -5
  139. package/src/generators/host/files/rspack-module-federation/rspack.config.js__tmpl__ +37 -13
  140. package/src/generators/host/files/rspack-module-federation/rspack.config.prod.js__tmpl__ +60 -30
  141. package/src/generators/host/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +16 -5
  142. package/src/generators/host/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +66 -0
  143. package/src/generators/host/files/rspack-module-federation-ssr/server.ts__tmpl__ +1 -1
  144. package/src/generators/host/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +49 -0
  145. package/src/generators/host/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +16 -7
  146. package/src/generators/host/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +66 -0
  147. package/src/generators/host/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +1 -1
  148. package/src/generators/host/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +49 -0
  149. package/src/generators/host/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +22 -19
  150. package/src/generators/host/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +61 -30
  151. package/src/generators/host/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +37 -13
  152. package/src/generators/host/files/webpack-module-federation/module-federation.config.js__tmpl__ +8 -5
  153. package/src/generators/host/files/webpack-module-federation/webpack.config.js__tmpl__ +1 -1
  154. package/src/generators/host/files/webpack-module-federation/webpack.config.prod.js__tmpl__ +24 -22
  155. package/src/generators/host/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +10 -7
  156. package/src/generators/host/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +2 -2
  157. package/src/generators/host/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +10 -7
  158. package/src/generators/host/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +2 -2
  159. package/src/generators/host/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +22 -19
  160. package/src/generators/host/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +25 -23
  161. package/src/generators/host/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +4 -3
  162. package/src/generators/host/host.d.ts +0 -1
  163. package/src/generators/host/host.js +31 -27
  164. package/src/generators/host/lib/add-module-federation-files.js +29 -13
  165. package/src/generators/host/lib/normalize-host-name.d.ts +2 -0
  166. package/src/generators/host/lib/normalize-host-name.js +12 -0
  167. package/src/generators/host/lib/normalize-remote.js +10 -6
  168. package/src/generators/host/lib/setup-ssr-for-host.d.ts +3 -3
  169. package/src/generators/host/lib/setup-ssr-for-host.js +46 -22
  170. package/src/generators/host/lib/update-module-federation-tsconfig.d.ts +3 -0
  171. package/src/generators/host/lib/update-module-federation-tsconfig.js +39 -0
  172. package/src/generators/host/schema.d.ts +2 -5
  173. package/src/generators/host/schema.json +16 -27
  174. package/src/generators/init/init.d.ts +1 -1
  175. package/src/generators/init/init.js +31 -6
  176. package/src/generators/init/schema.d.ts +2 -0
  177. package/src/generators/library/files/common/tsconfig.lib.json__tmpl__ +1 -1
  178. package/src/generators/library/files/vite/tsconfig.lib.json__tmpl__ +1 -1
  179. package/src/generators/library/lib/add-linting.js +1 -1
  180. package/src/generators/library/lib/add-rollup-build-target.d.ts +3 -1
  181. package/src/generators/library/lib/add-rollup-build-target.js +34 -32
  182. package/src/generators/library/lib/create-files.d.ts +1 -1
  183. package/src/generators/library/lib/create-files.js +23 -2
  184. package/src/generators/library/lib/determine-entry-fields.d.ts +3 -0
  185. package/src/generators/library/lib/determine-entry-fields.js +22 -0
  186. package/src/generators/library/lib/install-common-dependencies.d.ts +1 -1
  187. package/src/generators/library/lib/install-common-dependencies.js +5 -3
  188. package/src/generators/library/lib/normalize-options.js +11 -6
  189. package/src/generators/library/library.js +80 -35
  190. package/src/generators/library/schema.d.ts +5 -5
  191. package/src/generators/library/schema.json +38 -36
  192. package/src/generators/redux/files/js/__fileName__.__ext__ +114 -0
  193. package/src/generators/redux/files/{__fileName__.slice.spec.ts__tmpl__ → js/__fileName__.spec.__ext__} +1 -1
  194. package/src/generators/redux/files/ts/__fileName__.spec.__ext__ +56 -0
  195. package/src/generators/redux/redux.d.ts +0 -1
  196. package/src/generators/redux/redux.js +27 -36
  197. package/src/generators/redux/schema.d.ts +12 -8
  198. package/src/generators/redux/schema.json +21 -23
  199. package/src/generators/remote/files/rspack-module-federation/module-federation.config.js__tmpl__ +10 -7
  200. package/src/generators/remote/files/rspack-module-federation/rspack.config.js__tmpl__ +40 -13
  201. package/src/generators/remote/files/rspack-module-federation-ssr/module-federation.server.config.js__tmpl__ +13 -4
  202. package/src/generators/remote/files/rspack-module-federation-ssr/rspack.config.js__tmpl__ +69 -0
  203. package/src/generators/remote/files/rspack-module-federation-ssr/server.ts__tmpl__ +2 -2
  204. package/src/generators/remote/files/rspack-module-federation-ssr/src/main.server.tsx__tmpl__ +45 -0
  205. package/src/generators/remote/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +13 -4
  206. package/src/generators/remote/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +69 -0
  207. package/src/generators/remote/files/rspack-module-federation-ssr-ts/server.ts__tmpl__ +2 -2
  208. package/src/generators/remote/files/rspack-module-federation-ssr-ts/src/main.server.tsx__tmpl__ +45 -0
  209. package/src/generators/remote/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +11 -8
  210. package/src/generators/remote/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +40 -13
  211. package/src/generators/remote/files/webpack-module-federation/module-federation.config.js__tmpl__ +10 -7
  212. package/src/generators/remote/files/webpack-module-federation/webpack.config.js__tmpl__ +1 -1
  213. package/src/generators/remote/files/webpack-module-federation-ssr/module-federation.server.config.js__tmpl__ +7 -4
  214. package/src/generators/remote/files/webpack-module-federation-ssr/webpack.server.config.js__tmpl__ +2 -2
  215. package/src/generators/remote/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +8 -5
  216. package/src/generators/remote/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +2 -2
  217. package/src/generators/remote/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +11 -8
  218. package/src/generators/remote/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +2 -2
  219. package/src/generators/remote/lib/setup-ssr-for-remote.d.ts +1 -1
  220. package/src/generators/remote/lib/setup-ssr-for-remote.js +37 -15
  221. package/src/generators/remote/lib/setup-tspath-for-remote.js +1 -3
  222. package/src/generators/remote/lib/update-host-with-remote.js +2 -2
  223. package/src/generators/remote/remote.d.ts +0 -1
  224. package/src/generators/remote/remote.js +57 -33
  225. package/src/generators/remote/schema.d.ts +2 -5
  226. package/src/generators/remote/schema.json +16 -27
  227. package/src/generators/setup-tailwind/lib/update-project.js +1 -2
  228. package/src/generators/stories/schema.json +0 -10
  229. package/src/generators/stories/stories.d.ts +1 -3
  230. package/src/generators/stories/stories.js +9 -20
  231. package/src/generators/storybook-configuration/configuration.js +2 -11
  232. package/src/generators/storybook-configuration/schema.d.ts +0 -3
  233. package/src/generators/storybook-configuration/schema.json +0 -15
  234. package/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.js +11 -6
  235. package/src/migrations/update-20-2-0/migrate-mf-imports-to-new-package.d.ts +2 -0
  236. package/src/migrations/update-20-2-0/migrate-mf-imports-to-new-package.js +66 -0
  237. package/src/migrations/update-20-2-0/migrate-with-mf-import-to-new-package.d.ts +2 -0
  238. package/src/migrations/update-20-2-0/migrate-with-mf-import-to-new-package.js +41 -0
  239. package/src/migrations/update-20-3-0/ensure-nx-module-federation-package.d.ts +2 -0
  240. package/src/migrations/update-20-3-0/ensure-nx-module-federation-package.js +18 -0
  241. package/src/migrations/update-21-0-0/update-babel-loose.d.ts +2 -0
  242. package/src/migrations/update-21-0-0/update-babel-loose.js +30 -0
  243. package/src/plugins/router-plugin.d.ts +10 -0
  244. package/src/plugins/router-plugin.js +221 -0
  245. package/src/rules/update-module-federation-project.d.ts +2 -1
  246. package/src/rules/update-module-federation-project.js +37 -48
  247. package/src/utils/add-mf-env-to-inputs.d.ts +1 -1
  248. package/src/utils/add-mf-env-to-inputs.js +8 -11
  249. package/src/utils/assertion.d.ts +2 -0
  250. package/src/utils/assertion.js +6 -0
  251. package/src/utils/ast-utils.d.ts +1 -1
  252. package/src/utils/ast-utils.js +2 -2
  253. package/src/utils/create-ts-config.js +57 -7
  254. package/src/utils/ct-utils.d.ts +1 -1
  255. package/src/utils/ct-utils.js +2 -7
  256. package/src/utils/has-rsbuild-plugin.d.ts +2 -0
  257. package/src/utils/has-rsbuild-plugin.js +10 -0
  258. package/src/utils/has-rspack-plugin.d.ts +2 -0
  259. package/src/utils/has-rspack-plugin.js +10 -0
  260. package/src/utils/testing-generators.js +2 -4
  261. package/src/utils/version-utils.d.ts +14 -0
  262. package/src/utils/version-utils.js +56 -0
  263. package/src/utils/versions.d.ts +25 -17
  264. package/src/utils/versions.js +28 -19
  265. package/src/generators/component/files/__fileName__.tsx__tmpl__ +0 -84
  266. package/src/generators/component-cypress-spec/component-cypress-spec.d.ts +0 -13
  267. package/src/generators/component-cypress-spec/component-cypress-spec.js +0 -104
  268. package/src/generators/component-cypress-spec/files/__componentName__.__fileExt__ +0 -13
  269. package/src/generators/component-cypress-spec/schema.json +0 -45
  270. package/src/generators/host/files/rspack-module-federation-ssr/rspack.server.config.js__tmpl__ +0 -16
  271. package/src/generators/host/files/rspack-module-federation-ssr-ts/rspack.server.config.ts__tmpl__ +0 -16
  272. package/src/generators/library/files/common/package.json__tmpl__ +0 -4
  273. package/src/generators/library/files/vite/package.json__tmpl__ +0 -12
  274. package/src/generators/remote/files/rspack-module-federation-ssr/rspack.server.config.js__tmpl__ +0 -16
  275. package/src/generators/remote/files/rspack-module-federation-ssr-ts/rspack.server.config.ts__tmpl__ +0 -16
  276. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +0 -2
  277. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +0 -9
  278. package/src/migrations/update-16-2-0-remove-package/update-16-2-0-remove-package.d.ts +0 -2
  279. package/src/migrations/update-16-2-0-remove-package/update-16-2-0-remove-package.js +0 -8
  280. package/src/migrations/update-16-3-0/remove-types-react-router-dom-package.d.ts +0 -2
  281. package/src/migrations/update-16-3-0/remove-types-react-router-dom-package.js +0 -8
  282. package/src/migrations/update-16-7-0/add-babel-core.d.ts +0 -2
  283. package/src/migrations/update-16-7-0/add-babel-core.js +0 -14
  284. package/src/migrations/update-16-7-0-add-typings/update-16-7-0-add-typings.d.ts +0 -2
  285. package/src/migrations/update-16-7-0-add-typings/update-16-7-0-add-typings.js +0 -57
  286. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.d.ts +0 -2
  287. package/src/migrations/update-18-1-1/fix-target-defaults-inputs.js +0 -53
  288. package/src/module-federation/load-config.d.ts +0 -3
  289. package/src/module-federation/load-config.js +0 -15
  290. package/src/module-federation/models.d.ts +0 -24
  291. package/src/module-federation/models.js +0 -2
  292. package/src/module-federation/package-json.d.ts +0 -8
  293. package/src/module-federation/package-json.js +0 -12
  294. package/src/module-federation/utils.d.ts +0 -12
  295. package/src/module-federation/utils.js +0 -75
  296. package/src/module-federation/with-module-federation-ssr.d.ts +0 -2
  297. package/src/module-federation/with-module-federation-ssr.js +0 -50
  298. package/src/module-federation/with-module-federation.d.ts +0 -7
  299. package/src/module-federation/with-module-federation.js +0 -63
  300. package/src/utils/build-static.remotes.d.ts +0 -4
  301. package/src/utils/build-static.remotes.js +0 -65
  302. package/src/utils/format-file.d.ts +0 -1
  303. package/src/utils/format-file.js +0 -11
  304. /package/src/generators/component/files/{__fileName__.spec.tsx__tmpl__ → __fileName__.spec.__ext__} +0 -0
  305. /package/src/generators/hook/files/{__fileName__.spec.tsx__tmpl__ → __fileName__.spec.__specExt__} +0 -0
  306. /package/src/generators/redux/files/{__fileName__.slice.ts__tmpl__ → ts/__fileName__.__ext__} +0 -0
@@ -1,36 +1,66 @@
1
- const { composePlugins, withNx, withReact } = require('@nx/rspack');
2
- const { withModuleFederation } = require('@nx/rspack/module-federation');
1
+ const { NxAppRspackPlugin } = require('@nx/rspack/app-plugin');
2
+ const { NxReactRspackPlugin } = require('@nx/rspack/react-plugin');
3
+ const { NxModuleFederationPlugin, NxModuleFederationDevServerPlugin } = require('@nx/module-federation/rspack');
4
+ const { join } = require('path');
3
5
 
4
6
  const baseConfig = require('./module-federation.config');
5
7
 
6
8
  const prodConfig = {
7
- ...baseConfig,
8
- /*
9
- * Remote overrides for production.
10
- * Each entry is a pair of a unique name and the URL where it is deployed.
11
- *
12
- * e.g.
13
- * remotes: [
14
- * ['app1', 'http://app1.example.com'],
15
- * ['app2', 'http://app2.example.com'],
16
- * ]
17
- *
18
- * You can also use a full path to the remoteEntry.js file if desired.
19
- *
20
- * remotes: [
21
- * ['app1', 'http://example.com/path/to/app1/remoteEntry.js'],
22
- * ['app2', 'http://example.com/path/to/app2/remoteEntry.js'],
23
- * ]
24
- */
25
- remotes: [
26
- <% remotes.forEach(function(r) {%>['<%= r.fileName %>', 'http://localhost:<%= r.port %>/'],<% }); %>
27
- ],
9
+ ...baseConfig,
10
+ /*
11
+ * Remote overrides for production.
12
+ * Each entry is a pair of a unique name and the URL where it is deployed.
13
+ *
14
+ * e.g.
15
+ * remotes: [
16
+ * ['app1', 'http://app1.example.com'],
17
+ * ['app2', 'http://app2.example.com'],
18
+ * ]
19
+ *
20
+ * You can also use a full path to the remoteEntry.js file if desired.
21
+ *
22
+ * remotes: [
23
+ * ['app1', 'http://example.com/path/to/app1/remoteEntry.js'],
24
+ * ['app2', 'http://example.com/path/to/app2/remoteEntry.js'],
25
+ * ]
26
+ */
27
+ remotes: [
28
+ <%_ remotes.forEach(function(r) { _%>
29
+ ['<%= r.fileName %>', 'http://localhost:<%= r.port %>/'],
30
+ <%_ }); _%>
31
+ ],
28
32
  };
29
33
 
30
- // Nx plugins for rspack to build config object from Nx options and context.
31
- /**
32
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support for Module Federation
33
- * The DTS Plugin can be enabled by setting dts: true
34
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
35
- */
36
- module.exports = composePlugins(withNx(), withReact(), withModuleFederation(prodConfig, { dts: false }));
34
+ module.exports = {
35
+ output: {
36
+ path: join(__dirname, '<%= rspackPluginOptions.outputPath %>'),
37
+ publicPath: 'auto'
38
+ },
39
+ devServer: {
40
+ port: <%= devServerPort %>,
41
+ historyApiFallback: {
42
+ index: '/index.html',
43
+ disableDotRule: true,
44
+ htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
45
+ },
46
+ },
47
+ plugins: [
48
+ new NxAppRspackPlugin({
49
+ tsConfig: '<%= rspackPluginOptions.tsConfig %>',
50
+ main: '<%= rspackPluginOptions.main %>',
51
+ index: '<%= rspackPluginOptions.index %>',
52
+ baseHref: '<%= rspackPluginOptions.baseHref %>',
53
+ assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
54
+ styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
55
+ outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
56
+ optimization: process.env['NODE_ENV'] === 'production',
57
+ }),
58
+ new NxReactRspackPlugin({
59
+ // Uncomment this line if you don't want to use SVGR
60
+ // See: https://react-svgr.com/
61
+ // svgr: false
62
+ }),
63
+ new NxModuleFederationPlugin({ config: prodConfig }, { dts: false }),
64
+ new NxModuleFederationDevServerPlugin({ config: prodConfig }),
65
+ ],
66
+ };
@@ -1,16 +1,27 @@
1
1
  // @ts-check
2
2
 
3
3
  /**
4
- * @type {import('@nx/rspack/module-federation').ModuleFederationConfig}
4
+ * @type {import('@nx/module-federation').ModuleFederationConfig}
5
5
  **/
6
6
  const moduleFederationConfig = {
7
7
  name: '<%= projectName %>',
8
8
  remotes: [
9
- <% if (static) {
10
- remotes.forEach(function(r) { %> "<%= r.fileName %>", <% });
11
- }
12
- %>
9
+ <%_ if (static) {
10
+ remotes.forEach(function(r) { _%>
11
+ "<%= r.fileName %>",
12
+ <%_ });
13
+ }
14
+ _%>
13
15
  ],
16
+ shared: (libraryName, libraryConfig) => {
17
+ return {
18
+ ...libraryConfig,
19
+ eager: true
20
+ }
21
+ },
14
22
  };
15
23
 
24
+ /**
25
+ * Nx requires a default export of the config to allow correct resolution of the module federation graph.
26
+ **/
16
27
  module.exports = moduleFederationConfig;
@@ -0,0 +1,66 @@
1
+ const { NxAppRspackPlugin } = require('@nx/rspack/app-plugin');
2
+ const { NxReactRspackPlugin } = require('@nx/rspack/react-plugin');
3
+ const { NxModuleFederationPlugin, NxModuleFederationSSRDevServerPlugin } = require('@nx/module-federation/rspack');
4
+ const { join } = require('path');
5
+
6
+ const browserMfConfig = require('./module-federation.config');
7
+ const serverMfConfig = require('./module-federation.server.config');
8
+
9
+ const browserRspackConfig = {
10
+ name: 'browser',
11
+ output: {
12
+ path: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'browser'),
13
+ publicPath: 'auto'
14
+ },
15
+ devServer: {
16
+ port: <%= devServerPort %>,
17
+ historyApiFallback: {
18
+ index: '/index.html',
19
+ disableDotRule: true,
20
+ htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
21
+ },
22
+ devMiddleware: {
23
+ writeToDisk: (file: string) => !file.includes('.hot-update.'),
24
+ },
25
+ },
26
+ plugins: [
27
+ new NxAppRspackPlugin({
28
+ tsConfig: '<%= rspackPluginOptions.tsConfig %>',
29
+ main: '<%= rspackPluginOptions.main %>',
30
+ index: '<%= rspackPluginOptions.index %>',
31
+ baseHref: '<%= rspackPluginOptions.baseHref %>',
32
+ assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
33
+ styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
34
+ outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
35
+ optimization: process.env['NODE_ENV'] === 'production',
36
+ }),
37
+ new NxReactRspackPlugin({
38
+ // Uncomment this line if you don't want to use SVGR
39
+ // See: https://react-svgr.com/
40
+ // svgr: false
41
+ }),
42
+ new NxModuleFederationPlugin({ config: browserMfConfig }, { dts: false }),
43
+ ],
44
+ };
45
+
46
+ const serverRspackConfig = {
47
+ name: 'server',
48
+ target: 'async-node',
49
+ output: {
50
+ path: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
51
+ filename: 'server.js'
52
+ },
53
+ plugins: [
54
+ new NxAppRspackPlugin({
55
+ outputPath: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
56
+ outputFileName: 'server.js',
57
+ tsConfig: '<%= rspackPluginOptions.tsConfig %>',
58
+ main: '<%= rspackPluginOptions.mainServer %>',
59
+ baseHref: '<%= rspackPluginOptions.baseHref %>',
60
+ }),
61
+ new NxModuleFederationPlugin({ config: serverMfConfig, isServer: true }, { dts: false }),
62
+ new NxModuleFederationSSRDevServerPlugin({ config: serverMfConfig }),
63
+ ],
64
+ };
65
+
66
+ module.exports = [browserRspackConfig, serverRspackConfig];
@@ -7,7 +7,7 @@ import { handleRequest } from './src/main.server';
7
7
  const port = process.env['PORT'] || <%= port %>;
8
8
  const app = express();
9
9
 
10
- const browserDist = path.join(process.cwd(), '<%= browserBuildOutputPath %>');
10
+ const browserDist = path.join(process.cwd(), '<%= rspackPluginOptions.outputPath %>', 'browser');
11
11
  const indexPath = path.join(browserDist, 'index.html');
12
12
 
13
13
  app.use(cors());
@@ -0,0 +1,49 @@
1
+ import type { Request, Response } from 'express';
2
+ import * as fs from 'fs';
3
+ import * as ReactDOMServer from 'react-dom/server';
4
+ import isbot from 'isbot'
5
+
6
+ import App from './app/app';
7
+
8
+ import { StaticRouter } from 'react-router-dom/server';
9
+
10
+
11
+ let indexHtml: null | string = null;
12
+
13
+ export function handleRequest(indexPath: string) {
14
+ return function render(req: Request, res: Response) {
15
+ let didError = false;
16
+
17
+ if (!indexHtml) {
18
+ indexHtml = fs.readFileSync(indexPath).toString();
19
+ }
20
+
21
+ const [htmlStart, htmlEnd] = indexHtml.split(`<div id="root"></div>`);
22
+
23
+ // For bots (e.g. search engines), the content will not be streamed but render all at once.
24
+ // For users, content should be streamed to the user as they are ready.
25
+ const callbackName = isbot(req.headers['user-agent']) ? 'onAllReady' : 'onShellReady';
26
+
27
+ const stream = ReactDOMServer.renderToPipeableStream(
28
+ <StaticRouter location={req.originalUrl}><App /></StaticRouter>,
29
+ {
30
+ [callbackName]() {
31
+ res.statusCode = didError ? 500 : 200;
32
+ res.setHeader('Content-type', 'text/html; charset=utf-8');
33
+ res.write(`${htmlStart}<div id="root">`);
34
+ stream.pipe(res);
35
+ res.write(`</div>${htmlEnd}`);
36
+ },
37
+ onShellError(error) {
38
+ console.error(error);
39
+ res.statusCode = 500;
40
+ res.send('<!doctype html><h1>Server Error</h1>');
41
+ },
42
+ onError(error) {
43
+ didError = true;
44
+ console.error(error);
45
+ }
46
+ }
47
+ );
48
+ }
49
+ }
@@ -1,13 +1,22 @@
1
- import { ModuleFederationConfig } from '@nx/rspack/module-federation';
1
+ import { ModuleFederationConfig } from '@nx/module-federation';
2
2
 
3
3
  const config: ModuleFederationConfig = {
4
- name: '<%= projectName %>',
5
- remotes: [
6
- <% if (static) {
7
- remotes.forEach(function(r) { %> "<%= r.fileName %>", <% });
8
- }
9
- %>
4
+ name: '<%= projectName %>',
5
+ remotes: [
6
+ <%_ if (static) {
7
+ remotes.forEach(function(r) { _%>
8
+ "<%= r.fileName %>",
9
+ <%_ }); } _%>
10
10
  ],
11
+ shared: (libraryName, libraryConfig) => {
12
+ return {
13
+ ...libraryConfig,
14
+ eager: true
15
+ }
16
+ },
11
17
  };
12
18
 
19
+ /**
20
+ * Nx requires a default export of the config to allow correct resolution of the module federation graph.
21
+ **/
13
22
  export default config;
@@ -0,0 +1,66 @@
1
+ import { NxAppRspackPlugin } from '@nx/rspack/app-plugin';
2
+ import { NxReactRspackPlugin } from '@nx/rspack/react-plugin';
3
+ import { NxModuleFederationPlugin, NxModuleFederationSSRDevServerPlugin } from '@nx/module-federation/rspack';
4
+ import { join } from 'path';
5
+
6
+ import browserMfConfig from './module-federation.config';
7
+ import serverMfConfig from './module-federation.server.config';
8
+
9
+ const browserRspackConfig = {
10
+ name: 'browser',
11
+ output: {
12
+ path: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'browser'),
13
+ publicPath: 'auto'
14
+ },
15
+ devServer: {
16
+ port: <%= devServerPort %>,
17
+ historyApiFallback: {
18
+ index: '/index.html',
19
+ disableDotRule: true,
20
+ htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
21
+ },
22
+ devMiddleware: {
23
+ writeToDisk: (file: string) => !file.includes('.hot-update.'),
24
+ },
25
+ },
26
+ plugins: [
27
+ new NxAppRspackPlugin({
28
+ tsConfig: '<%= rspackPluginOptions.tsConfig %>',
29
+ main: '<%= rspackPluginOptions.main %>',
30
+ index: '<%= rspackPluginOptions.index %>',
31
+ baseHref: '<%= rspackPluginOptions.baseHref %>',
32
+ assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
33
+ styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
34
+ outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
35
+ optimization: process.env['NODE_ENV'] === 'production',
36
+ }),
37
+ new NxReactRspackPlugin({
38
+ // Uncomment this line if you don't want to use SVGR
39
+ // See: https://react-svgr.com/
40
+ // svgr: false
41
+ }),
42
+ new NxModuleFederationPlugin({ config: browserMfConfig }, { dts: false }),
43
+ ],
44
+ };
45
+
46
+ const serverRspackConfig = {
47
+ name: 'server',
48
+ target: 'async-node',
49
+ output: {
50
+ path: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
51
+ filename: 'server.js'
52
+ },
53
+ plugins: [
54
+ new NxAppRspackPlugin({
55
+ outputPath: join(__dirname, '<%= rspackPluginOptions.outputPath %>', 'server'),
56
+ outputFileName: 'server.js',
57
+ tsConfig: '<%= rspackPluginOptions.tsConfig %>',
58
+ main: '<%= rspackPluginOptions.mainServer %>',
59
+ baseHref: '<%= rspackPluginOptions.baseHref %>',
60
+ }),
61
+ new NxModuleFederationPlugin({ config: serverMfConfig, isServer: true }, { dts: false }),
62
+ new NxModuleFederationSSRDevServerPlugin({ config: serverMfConfig }),
63
+ ],
64
+ };
65
+
66
+ export default [browserRspackConfig, serverRspackConfig];
@@ -7,7 +7,7 @@ import { handleRequest } from './src/main.server';
7
7
  const port = process.env['PORT'] || <%= port %>;
8
8
  const app = express();
9
9
 
10
- const browserDist = path.join(process.cwd(), '<%= browserBuildOutputPath %>');
10
+ const browserDist = path.join(process.cwd(), '<%= rspackPluginOptions.outputPath %>', 'browser');
11
11
  const indexPath = path.join(browserDist, 'index.html');
12
12
 
13
13
  app.use(cors());
@@ -0,0 +1,49 @@
1
+ import type { Request, Response } from 'express';
2
+ import * as fs from 'fs';
3
+ import * as ReactDOMServer from 'react-dom/server';
4
+ import isbot from 'isbot'
5
+
6
+ import App from './app/app';
7
+
8
+ import { StaticRouter } from 'react-router-dom/server';
9
+
10
+
11
+ let indexHtml: null | string = null;
12
+
13
+ export function handleRequest(indexPath: string) {
14
+ return function render(req: Request, res: Response) {
15
+ let didError = false;
16
+
17
+ if (!indexHtml) {
18
+ indexHtml = fs.readFileSync(indexPath).toString();
19
+ }
20
+
21
+ const [htmlStart, htmlEnd] = indexHtml.split(`<div id="root"></div>`);
22
+
23
+ // For bots (e.g. search engines), the content will not be streamed but render all at once.
24
+ // For users, content should be streamed to the user as they are ready.
25
+ const callbackName = isbot(req.headers['user-agent']) ? 'onAllReady' : 'onShellReady';
26
+
27
+ const stream = ReactDOMServer.renderToPipeableStream(
28
+ <StaticRouter location={req.originalUrl}><App /></StaticRouter>,
29
+ {
30
+ [callbackName]() {
31
+ res.statusCode = didError ? 500 : 200;
32
+ res.setHeader('Content-type', 'text/html; charset=utf-8');
33
+ res.write(`${htmlStart}<div id="root">`);
34
+ stream.pipe(res);
35
+ res.write(`</div>${htmlEnd}`);
36
+ },
37
+ onShellError(error) {
38
+ console.error(error);
39
+ res.statusCode = 500;
40
+ res.send('<!doctype html><h1>Server Error</h1>');
41
+ },
42
+ onError(error) {
43
+ didError = true;
44
+ console.error(error);
45
+ }
46
+ }
47
+ );
48
+ }
49
+ }
@@ -1,25 +1,28 @@
1
- import { ModuleFederationConfig } from '@nx/rspack/module-federation';
1
+ import { ModuleFederationConfig } from '@nx/module-federation';
2
2
 
3
3
  const config: ModuleFederationConfig = {
4
- name: '<%= projectName %>',
5
- /**
6
- * To use a remote that does not exist in your current Nx Workspace
7
- * You can use the tuple-syntax to define your remote
8
- *
9
- * remotes: [['my-external-remote', 'https://nx-angular-remote.netlify.app']]
10
- *
11
- * You _may_ need to add a `remotes.d.ts` file to your `src/` folder declaring the external remote for tsc, with the
12
- * following content:
13
- *
14
- * declare module 'my-external-remote';
15
- *
16
- */
17
- remotes: [
18
- <% if (static) {
19
- remotes.forEach(function(r) { %> "<%= r.fileName %>", <% });
20
- }
21
- %>
4
+ name: '<%= projectName %>',
5
+ /**
6
+ * To use a remote that does not exist in your current Nx Workspace
7
+ * You can use the tuple-syntax to define your remote
8
+ *
9
+ * remotes: [['my-external-remote', 'https://nx-angular-remote.netlify.app']]
10
+ *
11
+ * You _may_ need to add a `remotes.d.ts` file to your `src/` folder declaring the external remote for tsc, with the
12
+ * following content:
13
+ *
14
+ * declare module 'my-external-remote';
15
+ *
16
+ */
17
+ remotes: [
18
+ <%_ if (static) {
19
+ remotes.forEach(function(r) { _%>
20
+ "<%= r.fileName %>",
21
+ <%_ }); } _%>
22
22
  ],
23
23
  };
24
24
 
25
+ /**
26
+ * Nx requires a default export of the config to allow correct resolution of the module federation graph.
27
+ **/
25
28
  export default config;
@@ -1,36 +1,67 @@
1
- import { composePlugins, withNx, withReact } from '@nx/rspack';
2
- import { withModuleFederation, ModuleFederationConfig } from '@nx/rspack/module-federation';
1
+ import { NxAppRspackPlugin } from '@nx/rspack/app-plugin';
2
+ import { NxReactRspackPlugin } from '@nx/rspack/react-plugin';
3
+ import { NxModuleFederationPlugin, NxModuleFederationDevServerPlugin } from '@nx/module-federation/rspack';
4
+ import { ModuleFederationConfig } from '@nx/module-federation';
5
+ import { join } from 'path';
3
6
 
4
7
  import baseConfig from './module-federation.config';
5
8
 
6
9
  const prodConfig: ModuleFederationConfig = {
7
- ...baseConfig,
8
- /*
9
- * Remote overrides for production.
10
- * Each entry is a pair of a unique name and the URL where it is deployed.
11
- *
12
- * e.g.
13
- * remotes: [
14
- * ['app1', 'http://app1.example.com'],
15
- * ['app2', 'http://app2.example.com'],
16
- * ]
17
- *
18
- * You can also use a full path to the remoteEntry.js file if desired.
19
- *
20
- * remotes: [
21
- * ['app1', 'http://example.com/path/to/app1/remoteEntry.js'],
22
- * ['app2', 'http://example.com/path/to/app2/remoteEntry.js'],
23
- * ]
24
- */
25
- remotes: [
26
- <% remotes.forEach(function(r) {%>['<%= r.fileName %>', 'http://localhost:<%= r.port %>/'],<% }); %>
27
- ],
10
+ ...baseConfig,
11
+ /*
12
+ * Remote overrides for production.
13
+ * Each entry is a pair of a unique name and the URL where it is deployed.
14
+ *
15
+ * e.g.
16
+ * remotes: [
17
+ * ['app1', 'http://app1.example.com'],
18
+ * ['app2', 'http://app2.example.com'],
19
+ * ]
20
+ *
21
+ * You can also use a full path to the remoteEntry.js file if desired.
22
+ *
23
+ * remotes: [
24
+ * ['app1', 'http://example.com/path/to/app1/remoteEntry.js'],
25
+ * ['app2', 'http://example.com/path/to/app2/remoteEntry.js'],
26
+ * ]
27
+ */
28
+ remotes: [
29
+ <%_ remotes.forEach(function(r) { _%>
30
+ ['<%= r.fileName %>', 'http://localhost:<%= r.port %>/'],
31
+ <%_ }); _%>
32
+ ],
28
33
  };
29
34
 
30
- // Nx plugins for rspack to build config object from Nx options and context.
31
- /**
32
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support for Module Federation
33
- * The DTS Plugin can be enabled by setting dts: true
34
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
35
- */
36
- export default composePlugins(withNx(), withReact(), withModuleFederation(prodConfig, { dts: false }));
35
+ export default {
36
+ output: {
37
+ path: join(__dirname, '<%= rspackPluginOptions.outputPath %>'),
38
+ publicPath: 'auto'
39
+ },
40
+ devServer: {
41
+ port: <%= devServerPort %>,
42
+ historyApiFallback: {
43
+ index: '/index.html',
44
+ disableDotRule: true,
45
+ htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
46
+ },
47
+ },
48
+ plugins: [
49
+ new NxAppRspackPlugin({
50
+ tsConfig: '<%= rspackPluginOptions.tsConfig %>',
51
+ main: '<%= rspackPluginOptions.main %>',
52
+ index: '<%= rspackPluginOptions.index %>',
53
+ baseHref: '<%= rspackPluginOptions.baseHref %>',
54
+ assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
55
+ styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
56
+ outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
57
+ optimization: process.env['NODE_ENV'] === 'production',
58
+ }),
59
+ new NxReactRspackPlugin({
60
+ // Uncomment this line if you don't want to use SVGR
61
+ // See: https://react-svgr.com/
62
+ // svgr: false
63
+ }),
64
+ new NxModuleFederationPlugin({ config: prodConfig }, { dts: false }),
65
+ new NxModuleFederationDevServerPlugin({ config: prodConfig }),
66
+ ],
67
+ };
@@ -1,16 +1,40 @@
1
- import {composePlugins, withNx, withReact} from '@nx/rspack';
2
- import {withModuleFederation, ModuleFederationConfig} from '@nx/rspack/module-federation';
1
+ import { NxAppRspackPlugin } from '@nx/rspack/app-plugin';
2
+ import { NxReactRspackPlugin } from '@nx/rspack/react-plugin';
3
+ import { NxModuleFederationPlugin, NxModuleFederationDevServerPlugin } from '@nx/module-federation/rspack';
4
+ import { join } from 'path';
3
5
 
4
- import baseConfig from './module-federation.config';
6
+ import config from './module-federation.config';
5
7
 
6
- const config: ModuleFederationConfig = {
7
- ...baseConfig,
8
+ export default {
9
+ output: {
10
+ path: join(__dirname, '<%= rspackPluginOptions.outputPath %>'),
11
+ publicPath: 'auto'
12
+ },
13
+ devServer: {
14
+ port: <%= devServerPort %>,
15
+ historyApiFallback: {
16
+ index: '/index.html',
17
+ disableDotRule: true,
18
+ htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
19
+ },
20
+ },
21
+ plugins: [
22
+ new NxAppRspackPlugin({
23
+ tsConfig: '<%= rspackPluginOptions.tsConfig %>',
24
+ main: '<%= rspackPluginOptions.main %>',
25
+ index: '<%= rspackPluginOptions.index %>',
26
+ baseHref: '<%= rspackPluginOptions.baseHref %>',
27
+ assets: <%- JSON.stringify(rspackPluginOptions.assets) %>,
28
+ styles: <%- JSON.stringify(rspackPluginOptions.styles) %>,
29
+ outputHashing: process.env['NODE_ENV'] === 'production' ? 'all' : 'none',
30
+ optimization: process.env['NODE_ENV'] === 'production',
31
+ }),
32
+ new NxReactRspackPlugin({
33
+ // Uncomment this line if you don't want to use SVGR
34
+ // See: https://react-svgr.com/
35
+ // svgr: false
36
+ }),
37
+ new NxModuleFederationPlugin({ config }, { dts: false }),
38
+ new NxModuleFederationDevServerPlugin({ config }),
39
+ ],
8
40
  };
9
-
10
- // Nx plugins for rspack to build config object from Nx options and context.
11
- /**
12
- * DTS Plugin is disabled in Nx Workspaces as Nx already provides Typing support for Module Federation
13
- * The DTS Plugin can be enabled by setting dts: true
14
- * Learn more about the DTS Plugin here: https://module-federation.io/configure/dts.html
15
- */
16
- export default composePlugins(withNx(), withReact(), withModuleFederation(config, { dts: false }));
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Nx requires a default export of the config to allow correct resolution of the module federation graph.
3
+ **/
1
4
  module.exports = {
2
5
  name: '<%= projectName %>',
3
6
  /**
@@ -13,9 +16,9 @@ module.exports = {
13
16
  *
14
17
  */
15
18
  remotes: [
16
- <% if (static) {
17
- remotes.forEach(function(r) { %> "<%= r.fileName %>", <% });
18
- }
19
- %>
19
+ <%_ if (static) {
20
+ remotes.forEach(function(r) { _%>
21
+ "<%= r.fileName %>",
22
+ <%_ }); } _%>
20
23
  ],
21
- };
24
+ };
@@ -1,6 +1,6 @@
1
1
  const { composePlugins, withNx } = require('@nx/webpack');
2
2
  const { withReact } = require('@nx/react');
3
- const { withModuleFederation } = require('@nx/react/module-federation');
3
+ const { withModuleFederation } = require('@nx/module-federation/webpack');
4
4
 
5
5
  const baseConfig = require('./module-federation.config');
6
6