From 5c975d515ebddcdc0bf7a2e9016a7ce5d0c2048c Mon Sep 17 00:00:00 2001
From: AkiraFukushima
Date: Sun, 1 May 2022 18:02:47 +0900
Subject: [PATCH] Improve compile speed for ts-loader
---
.electron-vue/webpack.main.config.js | 11 ----------
.electron-vue/webpack.renderer.config.js | 27 ++++++------------------
package.json | 6 ++++--
3 files changed, 10 insertions(+), 34 deletions(-)
diff --git a/.electron-vue/webpack.main.config.js b/.electron-vue/webpack.main.config.js
index c9a6fb9e..39b458ad 100644
--- a/.electron-vue/webpack.main.config.js
+++ b/.electron-vue/webpack.main.config.js
@@ -16,17 +16,6 @@ let mainConfig = {
externals: [...Object.keys(dependencies || {})],
module: {
rules: [
- {
- test: /\.(js|ts)$/,
- enforce: 'pre',
- exclude: /node_modules/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-friendly-formatter')
- }
- }
- },
{
test: /\.ts$/,
exclude: /node_modules/,
diff --git a/.electron-vue/webpack.renderer.config.js b/.electron-vue/webpack.renderer.config.js
index 64a41f8e..b05c0a8d 100644
--- a/.electron-vue/webpack.renderer.config.js
+++ b/.electron-vue/webpack.renderer.config.js
@@ -17,30 +17,14 @@ let rendererConfig = {
},
module: {
rules: [
- {
- test: /\.(js|vue|ts)$/,
- enforce: 'pre',
- exclude: /node_modules/,
- use: {
- loader: 'eslint-loader',
- options: {
- formatter: require('eslint-friendly-formatter')
- }
- }
- },
{
test: /\.vue$/,
use: {
loader: 'vue-loader',
options: {
extractCSS: process.env.NODE_ENV === 'production',
- loaders: {
- js: 'ts-loader',
- ts: 'ts-loader',
- sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1',
- scss: 'vue-style-loader!css-loader!sass-loader',
- less: 'vue-style-loader!css-loader!less-loader'
- }
+ esModule: true,
+ optimizeSSR: false
}
}
},
@@ -109,19 +93,20 @@ let rendererConfig = {
exclude: /node_modules/,
use: [
{
- loader: 'babel-loader'
+ loader: 'babel-loader?cacheDirectory'
},
{
loader: 'ts-loader',
options: {
- appendTsSuffixTo: [/\.vue$/]
+ appendTsSuffixTo: [/\.vue$/],
+ transpileOnly: true
}
}
]
},
{
test: /\.js$/,
- use: 'babel-loader',
+ use: 'babel-loader?cacheDirectory',
exclude: /node_modules/
},
{
diff --git a/package.json b/package.json
index 46e30e7f..93e7d071 100644
--- a/package.json
+++ b/package.json
@@ -21,6 +21,8 @@
"main": "./dist/electron/main.js",
"scripts": {
"dev": "node .electron-vue/dev-runner.js",
+ "dev:main": "webpack --node-env=development --mode development --progress --config .electron-vue/webpack.main.config.js",
+ "dev:renderer": "webpack --node-env=development --mode development --progress --config .electron-vue/webpack.renderer.config.js",
"lint": "eslint --ext .js,.vue,.ts -f ./node_modules/eslint-friendly-formatter src spec",
"lint:fix": "eslint --ext .js,.vue,.ts -f ./node_modules/eslint-friendly-formatter --fix src spec",
"stylelint": "stylelint '**/*.vue'",
@@ -36,7 +38,7 @@
"pack": "yarn run pack:main && yarn run pack:renderer",
"pack:main": "webpack --node-env=production --mode production --progress --config .electron-vue/webpack.main.config.js",
"pack:renderer": "webpack --node-env=production --mode production --progress --config .electron-vue/webpack.renderer.config.js",
- "postinstall": "yarn run lint:fix",
+ "typecheck": "tsc -p . --noEmit",
"spec": "NODE_ENV=test jest -u --maxWorkers=3"
},
"jest": {
@@ -73,7 +75,6 @@
"@fortawesome/free-regular-svg-icons": "^6.1.0",
"@fortawesome/free-solid-svg-icons": "^6.1.0",
"@fortawesome/vue-fontawesome": "^3.0.0-5",
- "vue-virtual-scroller": "2.0.0-alpha.1",
"@trodi/electron-splashscreen": "^1.0.2",
"about-window": "^1.15.2",
"animate.css": "^4.1.0",
@@ -108,6 +109,7 @@
"vue-popperjs": "^2.3.0",
"vue-resize": "^2.0.0-alpha.1",
"vue-router": "^4.0.14",
+ "vue-virtual-scroller": "2.0.0-alpha.1",
"vue3-i18next": "^0.2.0",
"vuex": "^4.0.2",
"vuex-router-sync": "^6.0.0-rc.1"