first commit
This commit is contained in:
78
rspack.config.ts
Normal file
78
rspack.config.ts
Normal file
@ -0,0 +1,78 @@
|
||||
import { defineConfig } from "@rspack/cli";
|
||||
import { rspack } from "@rspack/core";
|
||||
import * as RefreshPlugin from "@rspack/plugin-react-refresh";
|
||||
|
||||
const isDev = process.env.NODE_ENV === "development";
|
||||
|
||||
// Target browsers, see: https://github.com/browserslist/browserslist
|
||||
const targets = ["chrome >= 87", "edge >= 88", "firefox >= 78", "safari >= 14"];
|
||||
|
||||
const src = `${__dirname}/src`;
|
||||
const dist = `${__dirname}/dist`;
|
||||
const assets = `${__dirname}/build/assets`;
|
||||
const template = `${assets}/template`;
|
||||
|
||||
export default defineConfig({
|
||||
context: __dirname,
|
||||
entry: {
|
||||
service_worker: `${src}/service_worker.ts`,
|
||||
popup: `${src}/pages/popup/main.tsx`,
|
||||
},
|
||||
resolve: {
|
||||
extensions: ["...", ".ts", ".tsx", ".jsx"],
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.svg$/,
|
||||
type: "asset",
|
||||
},
|
||||
{
|
||||
test: /\.(jsx?|tsx?)$/,
|
||||
use: [
|
||||
{
|
||||
loader: "builtin:swc-loader",
|
||||
options: {
|
||||
jsc: {
|
||||
parser: {
|
||||
syntax: "typescript",
|
||||
tsx: true,
|
||||
},
|
||||
transform: {
|
||||
react: {
|
||||
runtime: "automatic",
|
||||
development: isDev,
|
||||
refresh: isDev,
|
||||
},
|
||||
},
|
||||
},
|
||||
env: { targets },
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
plugins: [
|
||||
new rspack.HtmlRspackPlugin({
|
||||
filename: `${dist}/ext/src/popup.html`,
|
||||
template: `${src}/pages/popup/index.html`,
|
||||
inject: "head",
|
||||
title: "Home - ScriptCat",
|
||||
minify: true,
|
||||
chunks: ["popup"],
|
||||
}),
|
||||
isDev ? new RefreshPlugin() : null,
|
||||
].filter(Boolean),
|
||||
optimization: {
|
||||
minimizer: [
|
||||
new rspack.SwcJsMinimizerRspackPlugin(),
|
||||
new rspack.LightningCssMinimizerRspackPlugin({
|
||||
minimizerOptions: { targets },
|
||||
}),
|
||||
],
|
||||
},
|
||||
experiments: {
|
||||
css: true,
|
||||
},
|
||||
});
|
Reference in New Issue
Block a user