当前位置: 首页 > news >正文

横岗网站设计个人主页类网站开发背景

横岗网站设计,个人主页类网站开发背景,陕西省建设厅网站,企业网站模板免费以下主要简化复杂的打包流程#xff0c;按照 delete - wpspublish - custom 的顺序运行 1. deleteFolder.js 用途#xff1a;该脚本的主要功能是清理项目中的临时文件夹和文件#xff0c;为后续的打包操作做准备。具体操作#xff1a; 尝试递归删除 wps-addon-bu…以下主要简化复杂的打包流程按照 delete - wpspublish - custom 的顺序运行 1. deleteFolder.js 用途该脚本的主要功能是清理项目中的临时文件夹和文件为后续的打包操作做准备。具体操作 尝试递归删除 wps-addon-build 和 wps-addon-publish 这两个文件夹。如果文件夹不存在脚本会正常提示无需删除若删除过程中出现其他错误则会输出相应的错误信息。检查 wps-addon-build.zip 文件是否存在若存在则将其删除若文件不存在也会给出相应提示。 删除 const path require(path); const fs2 require(fs).promises; const fs require(fs);async function deleteFolder(folderPath) {try {await fs2.rmdir(folderPath, { recursive: true });console.log(Successfully deleted folder: ${folderPath});} catch (err) {if (err.code ENOENT) {// Folder does not exist, which is not an error in our contextconsole.log(Folder does not exist: ${folderPath}, no need to delete.);} else {// Some other error occurredconsole.error(Error deleting folder: ${folderPath}, err);}} }async function main() {const foldersToDelete [wps-addon-build,wps-addon-publish];for (const folder of foldersToDelete) {const fullPath path.join(__dirname, folder);await deleteFolder(fullPath);}// Handling the ZIP file as beforeconst zipFilePath path.join(__dirname, wps-addon-build.zip);if (fs.existsSync(zipFilePath)) {try {fs.unlinkSync(zipFilePath);console.log(File deleted successfully (sync));} catch (err) {console.error(Error deleting file (sync):, err);}} else {console.log(ZIP file does not exist, no need to delete.);} }main().catch(err {console.error(Error in main function:, err); }); 2. wpspublish.js 用途此脚本的主要任务是查找 wpsjs 可执行文件并使用 Node.js 启动子进程来执行 wpsjs publish 打包命令同时处理该命令执行过程中的自动化交互。具体操作 从环境变量 PATH 中查找 wpsjs 的路径。若找到 wpsjs 可执行文件使用 spawn 函数启动一个子进程来执行 wpsjs publish 命令。在子进程执行过程中监听其标准输出当遇到需要输入服务器地址、选择发布类型或确认多用户使用等提示时自动模拟输入相应信息并使用防抖函数避免重复输出提示信息。监听子进程的标准错误流和退出事件输出相应的错误信息和退出码。 打包 const { spawn } require(child_process); const path require(path); // 从环境变量中查找 wpsjs 路径 function findWpsjsInPath() {const paths process.env.PATH.split(path.delimiter); // 分割环境变量 PATHfor (let dir of paths) {const wpsjsPath path.join(dir, wpsjs);if (pathExists(wpsjsPath)) {return wpsjsPath; // 返回找到的 wpsjs 路径}}return null; }// 检查路径是否存在 function pathExists(filePath) {try {return require(fs).existsSync(filePath);} catch (e) {return false;} }// 执行 wpsjs 命令 const wpsjsPath findWpsjsInPath(); // 查找 wpsjs 路径if (wpsjsPath) {// 如果找到了 wpsjs 可执行文件console.log(Found wpsjs at: ${wpsjsPath});// 用node启动子进程执行 wpsjs 发布命令const command node;const args [wpsjsPath, publish];// const args [D:\\01tools\\npm\\node_modules\\wpsjs\\src\\index.js, publish];// 启动子进程const child spawn(command, args, { stdio: [pipe, pipe, pipe] });// 定义防抖定时器let debounceTimeoutServer null; // 防抖定时器 - 服务器地址let debounceTimeoutType null; // 防抖定时器 - 发布类型let debounceTimeoutMultiUser null; // 防抖定时器 - 多用户// 监听子进程的标准输出child.stdout.on(data, (data) {let output data.toString().replace(/^\?/, ).trim(); // 去除开头的问号并去除多余的空格// 处理自动化交互if (output.includes(请输入发布 WPS 加载项的服务器地址)) {child.stdin.write(a/\n); // 模拟输入服务器地址// 防抖服务器地址输入debounceTimeoutServer setDebounceTimer(debounceTimeoutServer, () {console.log(output);});}if (output.includes(选择 WPS 加载项发布类型)) {child.stdin.write(\n); // 输入回车选择发布类型// 防抖发布类型选择debounceTimeoutType setDebounceTimer(debounceTimeoutType, () {console.log(output);});}if (output.includes(您的publish页面是否需要满足多用户同时使用)) {child.stdin.write(\n); // 确认操作按回车// 防抖多用户选择debounceTimeoutMultiUser setDebounceTimer(debounceTimeoutMultiUser, () {console.log(output);});}});// 监听标准错误流child.stderr.on(data, (data) {console.error(stderr:, data.toString()); // 打印所有的 stderr 输出});// 监听子进程退出child.on(close, (code) {console.log(子进程退出退出码: ${code});if (code ! 0) {console.log(进程出现错误退出代码不是 0);}}); }// 防抖函数 function setDebounceTimer(timer, callback, delay 500) {// 清除之前的定时器if (timer) {clearTimeout(timer);}// 设置新的定时器return setTimeout(callback, delay); } 3. CustomZipPlugin.js 用途该脚本主要负责识别 wps-addon-build 目录将 publish_html 目录的内容复制到 wps-addon-build 目录并在复制完成后将 wps-addon-build 目录压缩成 wps.tar.gz 文件。具体操作 检查 wps-addon-build 目录是否存在若存在则调用复制目录的函数若不存在或检查过程中出现错误会输出相应的提示信息。将 publish_html 目录的内容复制到 wps-addon-build 目录。复制完成后将 wps-addon-build 目录压缩成 wps.tar.gz 文件并输出压缩结果信息。 移动文件压缩 const fs require(fs-extra); const path require(path); // const archiver require(archiver);checkFolderExists(wps-addon-build) // 识别wps-addon-build目录 async function checkFolderExists(folderName) {try {const folderPath path.join(__dirname, folderName);const stats await fs.stat(folderPath);if (stats.isDirectory()) {//文件是否存在console.log(The folder ${folderName} exists.1111111);// 调用复制目录的函数copyDirectory();return true;} else {console.log(A file or something else named ${folderName} exists, but it is not a folder.);return false;}} catch (err) {if (err.code ENOENT) {console.log(The folder ${folderName} does not exist.);return false;} else {console.error(An error occurred while checking for the folder: ${err.message});throw err; // Re-throw the error after logging it}} } // 复制目录及其内容的异步函数 async function copyDirectory() {// 源目录publish_html和目标目录wps-addon-build的路径const sourceDir path.resolve(__dirname, publish_html);const targetDir path.resolve(__dirname, wps-addon-build);try {await fs.copy(sourceDir, targetDir, { dereference: true });console.log(Directory has been copied successfully.);// 直接执行后续代码// CustomTarGzPlugin();} catch (err) {console.error(Error copying directory:, err);} } // 在目录复制完成后打压缩包 function CustomTarGzPlugin() {const sourceFolder path.join(__dirname, wps-addon-build);const outputTarGzPath path.join(__dirname, wps.tar.gz);tarGzFolder(sourceFolder, outputTarGzPath).then(() {console.log(Folder has been successfully tar.gz\ed!);}).catch(err {console.error(An error occurred while tar.gz\ing the folder:, err);}); }// 压缩成 tar.gz 包 async function tarGzFolder(sourceFolder, outputTarGzPath) {return new Promise((resolve, reject) {const output fs.createWriteStream(outputTarGzPath);const archive archiver(tar, {gzip: true, // 启用 gzip 压缩gzipOptions: {level: 9 // 设置压缩级别}});output.on(close, function () {console.log(archive.pointer() total bytes);console.log(archiver has been finalized and the output file descriptor has closed.);resolve();});archive.on(error, function (err) {reject(err);});archive.pipe(output);archive.directory(sourceFolder, false);archive.finalize();}); } 最后按顺序跑脚本即可一行命令 node delete.js node wpspublish.js node custom.js  也可以简化操作package.json 最后npm run wps即可
http://www.hkea.cn/news/14575526/

相关文章:

  • 东莞网站seo优化托管如何采集网站内容
  • 做网站最简单的方法.net商城网站模板下载
  • 外贸网站国际化怎么做html编辑器电脑
  • 公司制作网站费用佛山市外贸网站建设公司
  • 闵行建设机械网站建设银行个人网站个人客户
  • 建个网站多少钱有哪些网站代做包装毕设
  • 渭南做网站价格建立企业的网站有哪几种方案
  • 南京 推广 网站建设网站是怎么建立起来的
  • 网站建设明细标价表手机海报制作app
  • 电商网站建设与运营专业线上推广产品
  • 西安做网站公司哪家好网站建设的简历制作
  • wordpress恢复网站公司网站用wordpress
  • 求一些做里番的网站如何做网站联盟营销
  • 惠州app网站建设排行榜如何在虚拟机里面做网站
  • wordpress子域名网站html网站的规划与建设6
  • 手机如何建免费网站南方人才网
  • 口碑好的网站定制公司网站免费推广策划方案
  • 网站建设平台协议书模板下载网站关键词排名软件推荐
  • 网站域名 设置wordpress 网络图片不显示图片
  • 佛山企业快速建站爱站网站长百度查询权重
  • 个人网站程序下载网页在线翻译
  • 旅游网站开发指导做多国语言网站
  • win2008搭建wordpress怎样才能做好网站优化
  • 建一个网站是不是要开公司可以做app的手机软件
  • 本地做网站顺序常见服务器
  • 资源下载类网站如何做外链网站建设与管理需要什么软件有哪些方面
  • 百度商桥怎么嵌入网站网站如何申请微信支付
  • 唐山cms模板建站网站互点联盟
  • 网站开发深入浅出 - python篇企业网站网页尺寸
  • 哪些软件可以做网站设计网页设计实训报告结束语