From 85594e021033d22f510c625cd2536ed3ac2b05ec Mon Sep 17 00:00:00 2001 From: ShawnPhang Date: Tue, 24 Sep 2024 19:39:32 +0800 Subject: [PATCH] fix: service/package.json builder --- service/webpack.plugin.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/service/webpack.plugin.js b/service/webpack.plugin.js index a812d5c..4d7fb8f 100644 --- a/service/webpack.plugin.js +++ b/service/webpack.plugin.js @@ -1,15 +1,23 @@ +/* + * @Author: ShawnPhang + * @Date: 2024-06-19 23:35:21 + * @Description: + * @LastEditors: ShawnPhang + * @LastEditTime: 2024-09-24 19:30:38 + */ const pkg = require("./package.json"); const fs = require('fs'); class MyPlugin { apply(compiler) { - compiler.hooks.emit.tap("BuildPackageJson", (compilation) => { + compiler.hooks.emit.tap("BuildPackageJson", async (compilation) => { console.log("构建 package.json ...."); const myBuildPackageJson = `{ name: ${pkg.name+'-builder'}, version: ${pkg.version}, dependencies: ${JSON.stringify(pkg.dependencies, null, 2)} }`; + await checkCreateFolder('./dist') fs.writeFile('./dist/package.json', myBuildPackageJson, 'utf8', (err) => { if (err) { console.error('保存 package.json 文件时发生错误:', err); @@ -21,4 +29,18 @@ class MyPlugin { } } +// 检测目录并创建目录 +function checkCreateFolder(folder) { + try { + const pathArr = splitPath(folder); + let _path = ""; + for (let i = 0; i < pathArr.length; i++) { + if (pathArr[i]) { + _path += `/${pathArr[i]}`; + !fs.existsSync(_path) && fs.mkdirSync(_path); + } + } + } catch (e) {} +} + module.exports = MyPlugin;