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"