Skip to content

Commit e9b0364

Browse files
committed
feat(repo): merge main from https://github.com/nrwl/nx-labs
2 parents eb61254 + c85cc7b commit e9b0364

File tree

89 files changed

+7550
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+7550
-0
lines changed

packages/rspack/.eslintrc.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"extends": ["../../.eslintrc.json"],
3+
"ignorePatterns": ["!**/*"],
4+
"overrides": [
5+
{
6+
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7+
"rules": {}
8+
},
9+
{
10+
"files": ["*.ts", "*.tsx"],
11+
"rules": {}
12+
},
13+
{
14+
"files": ["*.js", "*.jsx"],
15+
"rules": {}
16+
},
17+
{
18+
"files": ["./package.json", "./generators.json", "./executors.json"],
19+
"parser": "jsonc-eslint-parser",
20+
"rules": {
21+
"@nx/nx-plugin-checks": "error"
22+
}
23+
}
24+
]
25+
}

packages/rspack/README.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<p style="text-align: center;"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx.png" width="600" alt="Nx - Smart, Fast and Extensible Build System"></p>
2+
3+
<hr>
4+
5+
# Nx: Smart, Fast and Extensible Build System
6+
7+
Nx is a next generation build system with first class monorepo support and powerful integrations.
8+
9+
This package is a Rspack plugin for Nx.
10+
11+
## Getting Started
12+
13+
Use `--preset=@nx/rspack` when creating new workspace.
14+
15+
e.g.
16+
17+
```bash
18+
npx create-nx-workspace@latest rspack-demo --preset=@nx/rspack
19+
```
20+
21+
Now, you can go into the `rspack-demo` folder and start development.
22+
23+
```bash
24+
cd rspack-demo
25+
npm start
26+
```
27+
28+
You can also run lint, test, and e2e scripts for the project.
29+
30+
```bash
31+
npm run lint
32+
npm run test
33+
npm run e2e
34+
```
35+
36+
## Existing workspaces
37+
38+
You can add Rspack to any existing Nx workspace.
39+
40+
First, install the plugin:
41+
42+
```bash
43+
npm install --save-dev @nx/rspack
44+
```
45+
46+
Then, run the `rspack-project` generator:
47+
48+
```bash
49+
npx nx g @nx/rspack:rspack-project --skipValidation
50+
```
51+
52+
**Note:** The `--skipValidation` option allows you to overwrite existing build targets.
53+
54+
## Workspace libraries
55+
56+
The `@nx/rspack` executor support importing workspace libs into the app.
57+
58+
```bash
59+
npx nx g @nx/react:lib mylib
60+
```
61+
62+
Import the new library in your app.
63+
64+
```typescript jsx
65+
// src/app/app.tsx
66+
import { Mylib } from '@rspack-demo/mylib';
67+
68+
// ...
69+
70+
export default function App() {
71+
return <MyLib />;
72+
}
73+
```
74+
75+
Now, run the dev server again to see the new library in action.
76+
77+
```bash
78+
npm start
79+
```
80+
81+
**Note:** You must restart the server if you make any changes to your library.

packages/rspack/executors.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"$schema": "http://json-schema.org/schema",
3+
"executors": {
4+
"rspack": {
5+
"implementation": "./src/executors/rspack/rspack.impl",
6+
"schema": "./src/executors/rspack/schema.json",
7+
"description": "rspack executor"
8+
},
9+
"dev-server": {
10+
"implementation": "./src/executors/dev-server/dev-server.impl",
11+
"schema": "./src/executors/dev-server/schema.json",
12+
"description": "dev-server executor"
13+
},
14+
"ssr-dev-server": {
15+
"implementation": "./src/executors/ssr-dev-server/ssr-dev-server.impl",
16+
"schema": "./src/executors/ssr-dev-server/schema.json",
17+
"description": "Serve a SSR application."
18+
},
19+
"module-federation-dev-server": {
20+
"implementation": "./src/executors/module-federation-dev-server/module-federation-dev-server.impl",
21+
"schema": "./src/executors/module-federation-dev-server/schema.json",
22+
"description": "Serve a host or remote application."
23+
},
24+
"module-federation-ssr-dev-server": {
25+
"implementation": "./src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl",
26+
"schema": "./src/executors/module-federation-ssr-dev-server/schema.json",
27+
"description": "Serve a host application along with it's known remotes."
28+
},
29+
"module-federation-static-server": {
30+
"implementation": "./src/executors/module-federation-static-server/module-federation-static-server.impl",
31+
"schema": "./src/executors/module-federation-static-server/schema.json",
32+
"description": "Serve a host and its remotes statically."
33+
}
34+
}
35+
}

packages/rspack/generators.json

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"$schema": "http://json-schema.org/schema",
3+
"name": "rspack",
4+
"version": "0.0.1",
5+
"generators": {
6+
"configuration": {
7+
"factory": "./src/generators/configuration/configuration",
8+
"schema": "./src/generators/configuration/schema.json",
9+
"description": "Rspack configuration generator."
10+
},
11+
"init": {
12+
"factory": "./src/generators/init/init",
13+
"schema": "./src/generators/init/schema.json",
14+
"description": "Rspack init generator.",
15+
"hidden": true
16+
},
17+
"preset": {
18+
"factory": "./src/generators/preset/preset",
19+
"schema": "./src/generators/preset/schema.json",
20+
"description": "React preset generator.",
21+
"hidden": true
22+
},
23+
"application": {
24+
"factory": "./src/generators/application/application",
25+
"schema": "./src/generators/application/schema.json",
26+
"aliases": ["app"],
27+
"x-type": "application",
28+
"description": "React application generator."
29+
}
30+
}
31+
}

packages/rspack/jest.config.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/* eslint-disable */
2+
export default {
3+
displayName: 'rspack',
4+
preset: '../../jest.preset.js',
5+
globals: {},
6+
transform: {
7+
'^.+\\.[tj]s$': [
8+
'ts-jest',
9+
{
10+
tsconfig: '<rootDir>/tsconfig.spec.json',
11+
},
12+
],
13+
},
14+
moduleFileExtensions: ['ts', 'js', 'html'],
15+
coverageDirectory: '../../coverage/packages/rspack',
16+
};

packages/rspack/migrations.json

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
{
2+
"generators": {
3+
"update-16-0-0-add-nx-packages": {
4+
"cli": "nx",
5+
"version": "16.0.0-beta.1",
6+
"description": "Replace @nrwl/rspack with @nx/rspack",
7+
"implementation": "./src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages"
8+
}
9+
},
10+
"packageJsonUpdates": {
11+
"16.1.3": {
12+
"version": "16.1.3-beta.0",
13+
"packages": {
14+
"@rspack/core": {
15+
"version": "~0.1.12",
16+
"alwaysAddToPackageJson": false
17+
},
18+
"@rspack/dev-server": {
19+
"version": "~0.1.12",
20+
"alwaysAddToPackageJson": false
21+
},
22+
"@rspack/plugin-minify": {
23+
"version": "~0.1.12",
24+
"alwaysAddToPackageJson": false
25+
}
26+
}
27+
},
28+
"18.1.0": {
29+
"version": "18.1.0-beta.0",
30+
"packages": {
31+
"@rspack/core": {
32+
"version": "~0.5.6",
33+
"alwaysAddToPackageJson": false
34+
},
35+
"@rspack/dev-server": {
36+
"version": "~0.5.6",
37+
"alwaysAddToPackageJson": false
38+
},
39+
"@rspack/plugin-minify": {
40+
"version": "~0.5.6",
41+
"alwaysAddToPackageJson": false
42+
}
43+
}
44+
},
45+
"18.1.3": {
46+
"version": "18.1.3",
47+
"packages": {
48+
"@rspack/core": {
49+
"version": "^0.6.1",
50+
"alwaysAddToPackageJson": false
51+
},
52+
"@rspack/dev-server": {
53+
"version": "^0.6.1",
54+
"alwaysAddToPackageJson": false
55+
},
56+
"@rspack/plugin-minify": {
57+
"version": "^0.6.1",
58+
"alwaysAddToPackageJson": false
59+
}
60+
}
61+
},
62+
"19.3.0": {
63+
"version": "19.3.0-beta.0",
64+
"packages": {
65+
"@rspack/core": {
66+
"version": "^0.7.5",
67+
"alwaysAddToPackageJson": false
68+
},
69+
"@rspack/dev-server": {
70+
"version": "^0.7.5",
71+
"alwaysAddToPackageJson": false
72+
},
73+
"@rspack/plugin-minify": {
74+
"version": "^0.7.5",
75+
"alwaysAddToPackageJson": false
76+
}
77+
}
78+
},
79+
"19.7.0": {
80+
"version": "19.7.0-beta.1",
81+
"packages": {
82+
"@rspack/core": {
83+
"version": "^1.0.0",
84+
"alwaysAddToPackageJson": false
85+
},
86+
"@rspack/dev-server": {
87+
"version": "^1.0.0",
88+
"alwaysAddToPackageJson": false
89+
},
90+
"@rspack/plugin-react-refresh": {
91+
"version": "^1.0.0",
92+
"alwaysAddToPackageJson": false
93+
}
94+
}
95+
}
96+
},
97+
"version": "0.1"
98+
}

packages/rspack/module-federation.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './src/utils/module-federation/public-api';

packages/rspack/package.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"name": "@nx/rspack",
3+
"version": "0.0.1",
4+
"type": "commonjs",
5+
"repository": {
6+
"type": "git",
7+
"url": "https://github.com/nrwl/nx-labs.git",
8+
"directory": "packages/rspack"
9+
},
10+
"keywords": [
11+
"Monorepo",
12+
"Next",
13+
"Vercel"
14+
],
15+
"author": "Jack Hsu",
16+
"license": "MIT",
17+
"homepage": "https://nx.dev",
18+
"main": "src/index.js",
19+
"generators": "./generators.json",
20+
"executors": "./executors.json",
21+
"dependencies": {
22+
"@nx/js": "^19.5.7",
23+
"@nx/devkit": "^19.5.7",
24+
"@phenomnomnominal/tsquery": "~5.0.1",
25+
"less-loader": "11.1.0",
26+
"license-webpack-plugin": "^4.0.2",
27+
"sass-loader": "^12.2.0",
28+
"stylus-loader": "^7.1.0",
29+
"postcss-loader": "^8.1.1",
30+
"@nx/eslint": "^19.5.7",
31+
"@rspack/core": "^1.0.2",
32+
"@rspack/plugin-react-refresh": "^1.0.0",
33+
"@rspack/plugin-minify": "^0.7.5",
34+
"chalk": "~4.1.0"
35+
},
36+
"peerDependencies": {
37+
"@module-federation/enhanced": "~0.6.0",
38+
"@module-federation/node": "~2.5.10"
39+
},
40+
"nx-migrations": {
41+
"migrations": "./migrations.json"
42+
}
43+
}

packages/rspack/plugin.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { createDependencies, createNodesV2 } from './src/plugins/plugin';
2+
export type { RspackPluginOptions } from './src/plugins/plugin';

0 commit comments

Comments
 (0)