Svelte3 から Svelte4 にバージョンを上げたらというか、
全体的にバージョンを上げたので、ビルド環境含めのエラーに対しての対応。
環境
旧 package.json 抜粋
"devDependencies": {
    "@babel/plugin-proposal-private-methods": "^7.17.12",
    "@babel/preset-env": "^7.18.2",
    "babel-loader": "^8.2.5",
    "css-loader": "^5.2.1",
	"json-loader": "^0.5.7",
    "mini-css-extract-plugin": "^1.4.1",
    "node-sass": "^5.0.0",
    "sass-loader": "^10.1.1",
    "style-loader": "^2.0.0",
    "svelte": "^3.37.0",
    "svelte-loader": "^3.1.0",
    "svelte-preprocess": "^4.7.0",
    "webpack": "^5.31.2",
    "webpack-cli": "^4.6.0"
}
新 package.json 抜粋
- 全パッケージ最新バージョンに変更
- @babel/plugin-proposal-private-methods 削除
- @babel/plugin-transform-private-methods 追加
- sass 追加
"devDependencies": {
	"@babel/plugin-transform-private-methods": "^7.24.7",
    "@babel/preset-env": "^7.24.7",
    "babel-loader": "^9.1.3",
    "css-loader": "^7.1.2",
	"json-loader": "^0.5.7",
    "mini-css-extract-plugin": "^1.4.1",
	"node-sass": "^9.0.0",
    "sass": "^1.77.7",
    "sass-loader": "^14.2.1",
    "style-loader": "^4.0.0",
    "svelte": "^4.2.18",
    "svelte-loader": "^3.2.3",
    "svelte-preprocess": "^6.0.2",
    "webpack": "^5.92.1",
    "webpack-cli": "^5.1.4"
}
エラーの対応
ビルドできなくなった
$ webpack --mode=production
Module not found: Error: Can't resolve 'svelte/internal'
下記、変更点。
svelte: path.dirname(require.resolve('svelte/package.json'))
↓
svelte: path.resolve('node_modules', 'svelte/src/runtime')
webpack.config.js 抜粋
module.exports = {
	entry: './main.js',
	resolve: {
		alias: {
			svelte: path.resolve('node_modules', 'svelte/src/runtime'),
		},
	},
}
Svelte ファイル内で sass が使えなくなった
$ webpack --mode=production
Module build failed (from ./node_modules/svelte-loader/index.js):
Error: Cannot find module 'sass'
Svelte4 から sass が必要になった。
$ npm install sass --save-dev