From 08873184bdae49bb054da2a4364327c24ae66892 Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Mon, 20 Jul 2020 15:57:20 -0400 Subject: [PATCH] Avoid file locks + overwrites by using a temp file for HTML templates This fixes #1331. --- packages/cli/src/lib/webpack/render-html-plugin.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/cli/src/lib/webpack/render-html-plugin.js b/packages/cli/src/lib/webpack/render-html-plugin.js index 04d19d99c..557a69439 100644 --- a/packages/cli/src/lib/webpack/render-html-plugin.js +++ b/packages/cli/src/lib/webpack/render-html-plugin.js @@ -1,8 +1,8 @@ const { resolve, join } = require('path'); -const os = require('os'); const { existsSync, readFileSync, writeFileSync, mkdirSync } = require('fs'); const HtmlWebpackExcludeAssetsPlugin = require('html-webpack-exclude-assets-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); +const tempy = require('tempy'); const prerender = require('./prerender'); const createLoadManifest = require('./create-load-manifest'); const { esmImport, tryResolveConfig, warn } = require('../../util'); @@ -45,11 +45,8 @@ module.exports = async function (config) { // Unfortunately html-webpack-plugin expects a true file, // so we'll create a temporary one. - const tmpDir = join(os.tmpdir(), 'preact-cli'); - if (!existsSync(tmpDir)) { - mkdirSync(tmpDir); - } - template = resolve(tmpDir, 'template.tmp.ejs'); + + template = tempy.file({name: 'template.tmp.ejs'}); writeFileSync(template, content); }