Merge pull request #2481 from influxdata/bugfix/setback-webpack-callback
Node-style callbacks instead of async/await/promisify in webpack build dir cleanup codepull/2485/head
commit
d2d36b6ac8
|
@ -1,15 +1,11 @@
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const util = require('util')
|
|
||||||
const webpack = require('webpack')
|
const webpack = require('webpack')
|
||||||
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
const ExtractTextPlugin = require('extract-text-webpack-plugin')
|
||||||
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
||||||
const WebpackOnBuildPlugin = require('on-build-webpack')
|
const WebpackOnBuildPlugin = require('on-build-webpack')
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
|
|
||||||
const readdir = util.promisify(fs.readdir)
|
|
||||||
const unlink = util.promisify(fs.unlink)
|
|
||||||
|
|
||||||
const package = require('../package.json')
|
const package = require('../package.json')
|
||||||
const dependencies = package.dependencies
|
const dependencies = package.dependencies
|
||||||
|
|
||||||
|
@ -111,22 +107,28 @@ module.exports = {
|
||||||
new webpack.DefinePlugin({
|
new webpack.DefinePlugin({
|
||||||
VERSION: JSON.stringify(require('../package.json').version),
|
VERSION: JSON.stringify(require('../package.json').version),
|
||||||
}),
|
}),
|
||||||
new WebpackOnBuildPlugin(async stats => {
|
new WebpackOnBuildPlugin(stats => {
|
||||||
try {
|
|
||||||
const newlyCreatedAssets = stats.compilation.assets
|
const newlyCreatedAssets = stats.compilation.assets
|
||||||
const buildDirFiles = await readdir(buildDir)
|
fs.readdir(buildDir, (readdirErr, buildDirFiles) => {
|
||||||
|
if (readdirErr) {
|
||||||
|
console.error('webpack build directory error')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
const assetFileNames = _.keys(newlyCreatedAssets)
|
const assetFileNames = _.keys(newlyCreatedAssets)
|
||||||
const filesToRemove = _.difference(buildDirFiles, assetFileNames)
|
const filesToRemove = _.difference(buildDirFiles, assetFileNames)
|
||||||
|
|
||||||
for (file of filesToRemove) {
|
for (const file of filesToRemove) {
|
||||||
const ext = path.extname(file)
|
const ext = path.extname(file)
|
||||||
if (['.js', '.json', '.map'].includes(ext)) {
|
if (['.js', '.json', '.map'].includes(ext)) {
|
||||||
unlink(path.join(buildDir, file))
|
fs.unlink(path.join(buildDir, file), unlinkErr => {
|
||||||
|
if (unlinkErr) {
|
||||||
|
console.error('webpack cleanup error', unlinkErr)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
})
|
||||||
console.error(err)
|
|
||||||
}
|
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
postcss: require('./postcss'),
|
postcss: require('./postcss'),
|
||||||
|
|
Loading…
Reference in New Issue