forked from gitea/gitea
1
0
Fork 0

enable babel-loader cache (#10083)

this speeds up repeated webpack builds by around 20%. It will use the
default cache directory `node_modules/.cache/babel-loader`.

Also added cache invalidation to workaround https://github.com/babel/babel-loader/issues/690
This commit is contained in:
silverwind 2020-02-01 16:12:41 +01:00 committed by GitHub
parent 3ccd271081
commit 6dcf110628
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View File

@ -509,7 +509,7 @@ $(FOMANTIC_DEST_DIR): semantic.json web_src/fomantic/theme.config.less | node_mo
.PHONY: webpack .PHONY: webpack
webpack: node-check $(WEBPACK_DEST) webpack: node-check $(WEBPACK_DEST)
$(WEBPACK_DEST): $(WEBPACK_SOURCES) | node_modules $(WEBPACK_DEST): $(WEBPACK_SOURCES) webpack.config.js | node_modules
npx eslint web_src/js webpack.config.js npx eslint web_src/js webpack.config.js
npx stylelint web_src/less npx stylelint web_src/less
npx webpack --hide-modules --display-entrypoints=false npx webpack --hide-modules --display-entrypoints=false

View File

@ -7,6 +7,7 @@ const PostCSSPresetEnv = require('postcss-preset-env');
const PostCSSSafeParser = require('postcss-safe-parser'); const PostCSSSafeParser = require('postcss-safe-parser');
const TerserPlugin = require('terser-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin'); const VueLoaderPlugin = require('vue-loader/lib/plugin');
const { statSync } = require('fs');
const { resolve, parse } = require('path'); const { resolve, parse } = require('path');
const { SourceMapDevToolPlugin } = require('webpack'); const { SourceMapDevToolPlugin } = require('webpack');
@ -84,6 +85,13 @@ module.exports = {
{ {
loader: 'babel-loader', loader: 'babel-loader',
options: { options: {
cacheDirectory: true,
cacheCompression: false,
cacheIdentifier: [
resolve(__dirname, 'package.json'),
resolve(__dirname, 'package-lock.json'),
resolve(__dirname, 'webpack.config.js'),
].map((path) => statSync(path).mtime.getTime()).join(':'),
presets: [ presets: [
[ [
'@babel/preset-env', '@babel/preset-env',