Skip to content

Commit 86f0339

Browse files
committed
Extract module rules
I want to split out the Scratch config and this will be shared between them
1 parent 3e07578 commit 86f0339

File tree

1 file changed

+70
-70
lines changed

1 file changed

+70
-70
lines changed

webpack.config.js

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -20,94 +20,94 @@ const scratchChunkDir = path.resolve(
2020
"node_modules/@scratch/scratch-gui/dist/chunks",
2121
);
2222

23-
module.exports = {
24-
entry: {
25-
"web-component": path.resolve(__dirname, "./src/web-component.js"),
26-
scratch: path.resolve(__dirname, "./src/scratch.jsx"),
27-
PyodideWorker: path.resolve(__dirname, "./src/PyodideWorker.js"),
23+
const moduleRules = [
24+
{
25+
test: /\.(js|jsx)$/,
26+
exclude: /node_modules/,
27+
use: ["babel-loader"],
28+
},
29+
{
30+
test: /\.css$/,
31+
use: ["css-loader"],
2832
},
29-
module: {
30-
rules: [
33+
{
34+
test: /\.s[ac]ss$/i,
35+
exclude: [/node_modules/],
36+
use: [
3137
{
32-
test: /\.(js|jsx)$/,
33-
exclude: /node_modules/,
34-
use: ["babel-loader"],
38+
loader: "css-loader",
3539
},
3640
{
37-
test: /\.css$/,
38-
use: ["css-loader"],
41+
loader: "resolve-url-loader",
3942
},
4043
{
41-
test: /\.s[ac]ss$/i,
42-
exclude: [/node_modules/],
43-
use: [
44-
{
45-
loader: "css-loader",
46-
},
47-
{
48-
loader: "resolve-url-loader",
49-
},
50-
{
51-
loader: "sass-loader",
52-
options: {
53-
api: "modern",
54-
sassOptions: {
55-
loadPaths: [path.resolve(__dirname, "node_modules")],
56-
},
57-
sourceMap: true,
58-
},
44+
loader: "sass-loader",
45+
options: {
46+
api: "modern",
47+
sassOptions: {
48+
loadPaths: [path.resolve(__dirname, "node_modules")],
5949
},
60-
],
61-
},
62-
{
63-
test: /\.md$/,
64-
use: ["raw-loader"],
50+
sourceMap: true,
51+
},
6552
},
53+
],
54+
},
55+
{
56+
test: /\.md$/,
57+
use: ["raw-loader"],
58+
},
59+
{
60+
test: /\/src\/assets\/icons\/.*\.svg$/,
61+
use: [
6662
{
67-
test: /\/src\/assets\/icons\/.*\.svg$/,
68-
use: [
69-
{
70-
loader: "@svgr/webpack",
71-
options: {
72-
esModule: false,
73-
limit: 10000,
74-
},
75-
},
76-
],
63+
loader: "@svgr/webpack",
64+
options: {
65+
esModule: false,
66+
limit: 10000,
67+
},
7768
},
69+
],
70+
},
71+
{
72+
test: /cc-wallpaper\.svg$/,
73+
use: [
7874
{
79-
test: /cc-wallpaper\.svg$/,
80-
use: [
81-
{
82-
loader: "url-loader",
83-
options: {
84-
limit: 100000,
85-
},
86-
},
87-
],
75+
loader: "url-loader",
76+
options: {
77+
limit: 100000,
78+
},
8879
},
80+
],
81+
},
82+
{
83+
test: /\.svg$/,
84+
exclude: [/\/src\/assets\/icons\/.*\.svg$/, /cc-wallpaper\.svg$/],
85+
use: [
8986
{
90-
test: /\.svg$/,
91-
exclude: [/\/src\/assets\/icons\/.*\.svg$/, /cc-wallpaper\.svg$/],
92-
use: [
93-
{
94-
loader: "url-loader",
95-
options: {
96-
limit: 10000,
97-
},
98-
},
99-
],
87+
loader: "url-loader",
88+
options: {
89+
limit: 10000,
90+
},
10091
},
92+
],
93+
},
94+
{
95+
test: /\.(woff|woff2|eot|ttf|otf)$/,
96+
use: [
10197
{
102-
test: /\.(woff|woff2|eot|ttf|otf)$/,
103-
use: [
104-
{
105-
loader: "url-loader",
106-
},
107-
],
98+
loader: "url-loader",
10899
},
109100
],
110101
},
102+
];
103+
104+
module.exports = {
105+
entry: {
106+
"web-component": path.resolve(__dirname, "./src/web-component.js"),
107+
scratch: path.resolve(__dirname, "./src/scratch.jsx"),
108+
PyodideWorker: path.resolve(__dirname, "./src/PyodideWorker.js"),
109+
},
110+
module: { rules: moduleRules },
111111
resolve: {
112112
extensions: [".*", ".js", ".jsx", ".css"],
113113
fallback: {

0 commit comments

Comments
 (0)