use rspack instead of webpack.

This commit is contained in:
2025-05-27 19:25:27 +09:00
parent 191fe24ed2
commit fffa5fc1cd
3 changed files with 2341 additions and 2724 deletions

4981
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -5,8 +5,8 @@
"prepare": "node scripts/prepare-private-key.js",
"start": "node scripts/npm-start.js",
"develop": "npm run build -- --watch",
"build": "npm run prepare && cross-env NODE_ENV=development webpack",
"build:prod": "npm run prepare && cross-env NODE_ENV=production webpack",
"build": "npm run prepare && cross-env NODE_ENV=development rspack build",
"build:prod": "npm run prepare && cross-env NODE_ENV=production rspack build",
"dts-gen": "kintone-dts-gen",
"lint": "eslint src --ext .js,.jsx,.ts,.tsx",
"upload": "env-cmd --silent kintone-plugin-uploader dist/plugin.zip --watch --waiting-dialog-ms 3000"
@ -27,33 +27,25 @@
"tiny-invariant": "^1.3.3"
},
"devDependencies": {
"@babel/core": "^7.27.1",
"@babel/preset-env": "^7.27.2",
"@babel/preset-react": "^7.27.1",
"@babel/preset-typescript": "^7.27.1",
"@cybozu/eslint-config": "^24.0.0",
"@kintone/dts-gen": "^8.1.2",
"@kintone/plugin-uploader": "^9.1.5",
"@kintone/webpack-plugin-kintone-plugin": "^8.0.11",
"@rspack/cli": "^1.3.12",
"@rspack/core": "^1.3.12",
"@shin-chan/kypes": "^0.0.7",
"@swc/helpers": "^0.5.17",
"@types/file-saver": "^2.0.7",
"@types/react": "^19.1.5",
"@types/react-dom": "^19.1.5",
"ajv": "^8.17.1",
"babel-loader": "^10.0.0",
"cross-env": "^7.0.3",
"css-loader": "^7.1.2",
"env-cmd": "^10.1.0",
"eslint": "^9.27.0",
"eslint-plugin-react": "^7.37.5",
"npm-run-all": "^4.1.5",
"postcss-loader": "^8.1.1",
"prettier": "^3.5.3",
"sass": "^1.89.0",
"sass-loader": "^16.0.5",
"style-loader": "^4.0.0",
"typescript": "^5.8.3",
"webpack": "^5.99.9",
"webpack-cli": "^6.0.1"
"typescript": "^5.8.3"
}
}

View File

@ -1,4 +1,5 @@
/* eslint-env node */
const path = require('path');
const KintonePlugin = require('@kintone/webpack-plugin-kintone-plugin');
@ -18,27 +19,56 @@ module.exports = {
module: {
rules: [
{
test: /\.[t|j]sx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
test: /\.(j|t)s$/,
exclude: [/[\\/]node_modules[\\/]/],
loader: 'builtin:swc-loader',
options: {
presets: [
[
'@babel/preset-env',
{
useBuiltIns: 'usage',
corejs: 3,
modules: false,
sourceMaps: !isProduction,
jsc: {
parser: {
syntax: 'typescript',
},
transform: {
react: {
runtime: 'automatic',
development: !isProduction,
},
],
'@babel/preset-typescript',
'@babel/preset-react',
],
},
externalHelpers: true,
},
env: {
targets: 'Chrome >= 48',
},
},
},
{
test: /[^\.module]\.css$/i,
use: ['style-loader', 'css-loader', 'postcss-loader'],
test: /\.(j|t)sx$/,
loader: 'builtin:swc-loader',
exclude: [/[\\/]node_modules[\\/]/],
options: {
sourceMaps: !isProduction,
jsc: {
parser: {
syntax: 'typescript',
tsx: true,
},
transform: {
react: {
runtime: 'automatic',
development: !isProduction,
},
},
externalHelpers: true,
},
env: {
targets: 'Chrome >= 48', // browser compatibility
},
},
},
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
exclude: /\.module\.css$/,
},
{
test: /\.module\.css$/i,
@ -55,8 +85,6 @@ module.exports = {
},
},
},
'postcss-loader',
'sass-loader',
],
},
],