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;