Skip to content

Commit 6bb26f6

Browse files
committed
Add webpack to all plugins
1 parent f1f4117 commit 6bb26f6

22 files changed

+198
-13
lines changed

exp_commands/package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"repository": "explosivegaming/ExpCluster",
88
"main": "dist/node/index.js",
99
"scripts": {
10-
"prepare": "tsc --build"
10+
"prepare": "tsc --build && webpack-cli --env production"
1111
},
1212
"engines": {
1313
"node": ">=18"
@@ -18,7 +18,10 @@
1818
"devDependencies": {
1919
"@clusterio/lib": "catalog:",
2020
"@types/node": "catalog:",
21-
"typescript": "catalog:"
21+
"typescript": "catalog:",
22+
"webpack": "catalog:",
23+
"webpack-cli": "catalog:",
24+
"webpack-merge": "catalog:"
2225
},
2326
"dependencies": {
2427
"@expcluster/lib_util": "workspace:^",

exp_commands/tsconfig.browser.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"extends": "../tsconfig.browser.json",
3+
"include": [ "web/**/*.tsx", "web/**/*.ts", "package.json" ],
4+
}

exp_commands/tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"files": [],
33
"references": [
4-
{ "path": "./tsconfig.node.json" }
4+
{ "path": "./tsconfig.node.json" },
5+
{ "path": "./tsconfig.browser.json" }
56
]
67
}

exp_commands/web/index.tsx

Whitespace-only changes.

exp_commands/webpack.config.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
"use strict";
2+
const path = require("path");
3+
const webpack = require("webpack");
4+
const { merge } = require("webpack-merge");
5+
6+
const common = require("@clusterio/web_ui/webpack.common");
7+
8+
module.exports = (env = {}) => merge(common(env), {
9+
context: __dirname,
10+
entry: "./web/index.tsx",
11+
output: {
12+
path: path.resolve(__dirname, "dist", "web"),
13+
},
14+
plugins: [
15+
new webpack.container.ModuleFederationPlugin({
16+
name: "exp_commands",
17+
library: { type: "window", name: "plugin_exp_commands" },
18+
exposes: {
19+
"./": "./index.ts",
20+
"./package.json": "./package.json",
21+
"./web": "./web/index.tsx",
22+
},
23+
shared: {
24+
"@clusterio/lib": { import: false },
25+
"@clusterio/web_ui": { import: false },
26+
},
27+
}),
28+
],
29+
});

exp_gui/package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"repository": "explosivegaming/ExpCluster",
88
"main": "dist/node/index.js",
99
"scripts": {
10-
"prepare": "tsc --build"
10+
"prepare": "tsc --build && webpack-cli --env production"
1111
},
1212
"engines": {
1313
"node": ">=18"
@@ -18,7 +18,10 @@
1818
"devDependencies": {
1919
"@clusterio/lib": "catalog:",
2020
"@types/node": "catalog:",
21-
"typescript": "catalog:"
21+
"typescript": "catalog:",
22+
"webpack": "catalog:",
23+
"webpack-cli": "catalog:",
24+
"webpack-merge": "catalog:"
2225
},
2326
"dependencies": {
2427
"@expcluster/lib_util": "workspace:^",

exp_gui/tsconfig.browser.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"extends": "../tsconfig.browser.json",
3+
"include": [ "web/**/*.tsx", "web/**/*.ts", "package.json" ],
4+
}

exp_gui/tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"files": [],
33
"references": [
4-
{ "path": "./tsconfig.node.json" }
4+
{ "path": "./tsconfig.node.json" },
5+
{ "path": "./tsconfig.browser.json" }
56
]
67
}

exp_gui/web/index.tsx

Whitespace-only changes.

exp_gui/webpack.config.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
"use strict";
2+
const path = require("path");
3+
const webpack = require("webpack");
4+
const { merge } = require("webpack-merge");
5+
6+
const common = require("@clusterio/web_ui/webpack.common");
7+
8+
module.exports = (env = {}) => merge(common(env), {
9+
context: __dirname,
10+
entry: "./web/index.tsx",
11+
output: {
12+
path: path.resolve(__dirname, "dist", "web"),
13+
},
14+
plugins: [
15+
new webpack.container.ModuleFederationPlugin({
16+
name: "exp_gui",
17+
library: { type: "window", name: "plugin_exp_gui" },
18+
exposes: {
19+
"./": "./index.ts",
20+
"./package.json": "./package.json",
21+
"./web": "./web/index.tsx",
22+
},
23+
shared: {
24+
"@clusterio/lib": { import: false },
25+
"@clusterio/web_ui": { import: false },
26+
},
27+
}),
28+
],
29+
});

0 commit comments

Comments
 (0)