@hnb-pkg/apacker 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ declare const params: string[];
3
+ declare function main(): void;
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ const params = process.argv.slice(2);
4
+ function main() {
5
+ const commands = ["build", "dev", "clear", "new"];
6
+ if (params.length !== 1 || !commands.includes(params[0])) {
7
+ console.error("错误: 无效的命令参数");
8
+ console.log("用法: apacker <command>");
9
+ console.log("命令:");
10
+ console.log(" apacker dev 启动开发");
11
+ console.log(" apacker build 打包为 Zip");
12
+ console.log(" apacker clear 清除项目生成的文件");
13
+ console.log(" apacker new 生成新的版本");
14
+ process.exit(1);
15
+ }
16
+ console.log(params);
17
+ }
18
+ main();
19
+ //# sourceMappingURL=apacker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apacker.js","sourceRoot":"","sources":["../../src/bin/apacker.ts"],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAErC,SAAS,IAAI;IACX,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/bundle.js ADDED
@@ -0,0 +1,115 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const node_path_1 = require("node:path");
5
+ const node_fs_1 = require("node:fs");
6
+ const node_child_process_1 = require("node:child_process");
7
+ const archiver_1 = require("archiver");
8
+ const utils_js_1 = require("./utils.js");
9
+ const myutils_1 = require("@hnb-pkg/myutils");
10
+ const { version } = parseArgv();
11
+ const logger = new utils_js_1.Logger("[BUNDLE]");
12
+ const projName = node_path_1.default.basename(process.cwd());
13
+ logger.info(`开始打包项目:${myutils_1._c.c(projName)}`);
14
+ // 切换到版本目录
15
+ try {
16
+ logger.info(`切换到版本目录 ${myutils_1._c.c(version)}`);
17
+ process.chdir(`./${version}`);
18
+ }
19
+ catch {
20
+ console.error(myutils_1._c.r(`切换到版本目录 ./${version} 失败,请检查该目录是否存在!`));
21
+ process.exit(1);
22
+ }
23
+ // Public Path
24
+ const prodDir = node_path_1.default.join("../prod");
25
+ const zipName = node_path_1.default.join(prodDir, `${projName}.zip`);
26
+ // Version Path
27
+ const tsDistDir = node_path_1.default.join("./output");
28
+ const anDistDir = node_path_1.default.join("./dist");
29
+ const libsDir = node_path_1.default.join(anDistDir, "./libs");
30
+ // IIFE
31
+ (async function main() {
32
+ logger.info("编译 TypeScript");
33
+ node_child_process_1.default.execSync("tsc");
34
+ const files = collectFilesToLibs(tsDistDir);
35
+ logger.info(`复制输出文件(${myutils_1._c.c(tsDistDir)} -> ${myutils_1._c.c(libsDir)}, 共 ${myutils_1._c.c(files.length)} 个文件)`);
36
+ if (!node_fs_1.default.existsSync(libsDir))
37
+ node_fs_1.default.mkdirSync(libsDir, { recursive: true });
38
+ for (const filePath of files) {
39
+ const p = filePath.replace(/[\\\/]/g, "/").replace("output/", "");
40
+ const libPatterns = [/^global/];
41
+ if (libPatterns.some(pattern => pattern.test(p))) {
42
+ const fileName = node_path_1.default.basename(p);
43
+ const destPath = node_path_1.default.join(libsDir, fileName);
44
+ node_fs_1.default.copyFileSync(filePath, destPath);
45
+ }
46
+ else {
47
+ const destPath = node_path_1.default.join(libsDir, p);
48
+ const destDir = node_path_1.default.dirname(destPath);
49
+ if (!node_fs_1.default.existsSync(destDir))
50
+ node_fs_1.default.mkdirSync(destDir, { recursive: true });
51
+ node_fs_1.default.copyFileSync(filePath, destPath);
52
+ }
53
+ }
54
+ // 清理并复制文件夹
55
+ logger.info(`复制产物 ${myutils_1._c.c(anDistDir)} -> ${myutils_1._c.c(prodDir)}`);
56
+ node_fs_1.default.rmSync(prodDir, { recursive: true, force: true });
57
+ (0, utils_js_1.copyDirSync)(anDistDir, node_path_1.default.join(prodDir, projName));
58
+ rewriteIndexHtml();
59
+ // 删除不需要的文件
60
+ const unnecessaryFiles = ["raw.html", "dev.html", ".gitkeep"];
61
+ for (const file of unnecessaryFiles) {
62
+ const filePath = node_path_1.default.join(prodDir, projName, file);
63
+ if (node_fs_1.default.existsSync(filePath))
64
+ node_fs_1.default.rmSync(filePath);
65
+ }
66
+ // 打包 zip
67
+ logger.info(`压缩文件`);
68
+ const output = node_fs_1.default.createWriteStream(zipName);
69
+ const arch = (0, archiver_1.default)("zip", { zlib: { level: 9 } });
70
+ arch.pipe(output);
71
+ arch.directory(node_path_1.default.join(prodDir, projName), false);
72
+ await arch.finalize();
73
+ // 打开目标目录
74
+ (0, utils_js_1.openDir)(prodDir);
75
+ })();
76
+ /**
77
+ * 解析命令行参数
78
+ */
79
+ function parseArgv() {
80
+ const argv = process.argv.slice(2);
81
+ const version = argv[0] || "v1"; // 获取版本参数,默认为 v1
82
+ return { version };
83
+ }
84
+ /**
85
+ * 收集 srcDir 下的所有文件,忽略以 _ 开头的文件和目录
86
+ * @param srcDir
87
+ */
88
+ function collectFilesToLibs(srcDir) {
89
+ // IIFE
90
+ return (function collectFiles(srcDir, files) {
91
+ const ignorePatterns = [/^_/];
92
+ const entries = node_fs_1.default.readdirSync(srcDir, { withFileTypes: true });
93
+ for (const entry of entries) {
94
+ // 忽略匹配的文件和目录
95
+ if (ignorePatterns.some(pattern => pattern.test(entry.name)))
96
+ continue;
97
+ const srcPath = node_path_1.default.join(srcDir, entry.name);
98
+ if (entry.isDirectory())
99
+ collectFiles(srcPath, files); // 递归收集子目录
100
+ if (entry.isFile())
101
+ files.push(srcPath);
102
+ }
103
+ return files;
104
+ })(/** @type {string} */ srcDir, /** @type {string[]} */ []);
105
+ }
106
+ function rewriteIndexHtml() {
107
+ const distIndex = node_path_1.default.join(anDistDir, "dev.html");
108
+ const prodIndex = node_path_1.default.join(prodDir, projName, "index.html");
109
+ let fileContent = node_fs_1.default.readFileSync(distIndex, "utf-8");
110
+ fileContent = fileContent.replaceAll("../output/global", "./libs/global");
111
+ fileContent = fileContent.replaceAll("../output/lib/", "./libs/");
112
+ fileContent = fileContent.replaceAll("../output/", "./libs/");
113
+ node_fs_1.default.writeFileSync(prodIndex, fileContent, "utf-8");
114
+ }
115
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
package/dist/dev.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/dist/dev.js ADDED
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const child_process_1 = require("child_process");
4
+ const node_path_1 = require("node:path");
5
+ const node_fs_1 = require("node:fs");
6
+ const utils_js_1 = require("./utils.js");
7
+ const myutils_1 = require("@hnb-pkg/myutils");
8
+ const argv = process.argv.slice(2);
9
+ const version = argv[0] || "v1";
10
+ main();
11
+ function main() {
12
+ checkTools();
13
+ process.chdir(`./${version}`);
14
+ checkFirstRun();
15
+ generateDevHtml();
16
+ copyMedia();
17
+ openDevHtml();
18
+ runTscWatch();
19
+ }
20
+ /**
21
+ * 检查必要工具
22
+ */
23
+ function checkTools() {
24
+ if (node_fs_1.default.existsSync("./node_modules"))
25
+ return;
26
+ (0, utils_js_1.logInfo)("[CHECK TOOLS]", "node_modules 不存在,正在安装依赖,请稍后...");
27
+ try {
28
+ (0, utils_js_1.logInfo)("[CHECK TOOLS]", "检查必要工具...");
29
+ (0, child_process_1.execSync)("pnpm -v", { stdio: "ignore" });
30
+ }
31
+ catch {
32
+ (0, utils_js_1.logInfo)("[CHECK TOOLS]", myutils_1._c.r("请先安装 pnpm:https://pnpm.io/zh/installation"));
33
+ process.exit(0);
34
+ }
35
+ try {
36
+ (0, child_process_1.execSync)(`pnpm i`);
37
+ }
38
+ catch {
39
+ (0, utils_js_1.logInfo)("[CHECK TOOLS]", myutils_1._c.r("依赖安装失败,请检查网络或稍后再试"));
40
+ process.exit(0);
41
+ }
42
+ }
43
+ /**
44
+ * 打开浏览器
45
+ */
46
+ function openDevHtml() {
47
+ (0, child_process_1.execSync)("start ./dist/dev.html");
48
+ }
49
+ /**
50
+ * 生成 dist 目录
51
+ */
52
+ function checkFirstRun() {
53
+ node_fs_1.default.mkdirSync("dist", { recursive: true });
54
+ node_fs_1.default.mkdirSync("./src/media", { recursive: true });
55
+ node_fs_1.default.writeFileSync("dist/.gitkeep", "");
56
+ node_fs_1.default.writeFileSync("./src/media/.gitkeep", "");
57
+ if (node_fs_1.default.existsSync(node_path_1.default.resolve("dist/index.html")))
58
+ return;
59
+ (0, utils_js_1.logInfo)("[CHECK TOOLS]", myutils_1._c.r("dist 未生成,请打开 fla 文件发布后,再次运行 pnpm dev"));
60
+ (0, child_process_1.execSync)("tsc");
61
+ process.exit(0);
62
+ }
63
+ /**
64
+ * 运行 tsc --watch
65
+ */
66
+ function runTscWatch() {
67
+ const child = (0, child_process_1.exec)("tsc --watch", { cwd: process.cwd() });
68
+ child.stdout?.pipe(process.stdout);
69
+ child.stderr?.pipe(process.stderr);
70
+ child.on("close", code => {
71
+ process.exit(code); // 将tsc的退出码传递给当前进程
72
+ });
73
+ }
74
+ /**
75
+ * 生成开发用的 HTML 文件
76
+ */
77
+ function generateDevHtml() {
78
+ console.log(myutils_1._c.m("[Generate Dev HTML]"));
79
+ let content = node_fs_1.default.readFileSync("./dist/index.html", "utf-8");
80
+ const scriptTags = (0, utils_js_1.findAllScriptTags)(content);
81
+ for (const tag of scriptTags) {
82
+ let src = tag.match(/src=['"](.*?)['"]/)?.[1] || "";
83
+ if (src.startsWith("libs/frame") || src.startsWith("libs/global")) {
84
+ // 页面代码和全局代码在外层
85
+ src = src.replace("libs/", "../output/");
86
+ }
87
+ else {
88
+ // 其他库在lib里
89
+ src = src.replace("libs/", "../output/lib/");
90
+ }
91
+ const newTag = tag.replace(/src=['"](.*?)['"]/, `src='${src}'`);
92
+ content = content.replace(tag, newTag);
93
+ }
94
+ // 从 src/modules 目录读取所有 ts 文件,并生成对应的 js 引用
95
+ const modulesFiles = searchTsInDir("./src/modules");
96
+ const modulesNodes = modulesFiles.map(srcScriptMapper);
97
+ modulesNodes.unshift("<!-- Modules -->");
98
+ content = content.replace("<!--MODULES-->", modulesNodes.join("\n"));
99
+ // 从 src/plugins 目录读取所有 ts 文件,并生成对应的 js 引用
100
+ const pluginFiles = searchTsInDir("./src/plugins");
101
+ const pluginNodes = pluginFiles.map(srcScriptMapper);
102
+ pluginNodes.unshift("<!-- Plugins -->");
103
+ content = content.replace("<!--PLUGINS-->", pluginNodes.join("\n"));
104
+ // 从 src/imports 目录读取所有 ts 文件,并生成对应的 js 引用
105
+ const importFiles = searchTsInDir("./src/imports");
106
+ const importNodes = importFiles.map(srcScriptMapper);
107
+ importNodes.unshift("<!-- Imports -->");
108
+ content = content.replace("<!--IMPORTS-->", importNodes.join("\n"));
109
+ // 从 src/frames 目录读取所有 ts 文件,并生成对应的 js 引用
110
+ const frameFiles = searchTsInDir("./src/frames");
111
+ const frameNodes = frameFiles.map(srcScriptMapper);
112
+ frameNodes.unshift("<!-- Frames -->");
113
+ content = content.replace("<!--FRAMES-->", frameNodes.join("\n"));
114
+ // 写入 dev.html
115
+ node_fs_1.default.copyFileSync("./dist/index.html", "./dist/dev.html");
116
+ node_fs_1.default.writeFileSync("./dist/dev.html", content, "utf-8");
117
+ }
118
+ /**
119
+ * 搜索 src 目录下的所有 ts 文件,返回路径列表,忽略以 `_` 开头的文件或目录
120
+ * @param dir 目录
121
+ */
122
+ function searchTsInDir(dir) {
123
+ const ignorePatterns = [/^_/];
124
+ /** @type {string[]} */
125
+ let results = [];
126
+ const list = node_fs_1.default.readdirSync(dir, { withFileTypes: true });
127
+ for (const file of list) {
128
+ if (ignorePatterns.some(pattern => pattern.test(file.name)))
129
+ continue;
130
+ const filePath = node_path_1.default.join(dir, file.name);
131
+ if (file.isDirectory()) {
132
+ results = results.concat(searchTsInDir(filePath));
133
+ }
134
+ else if (file.isFile() && file.name.endsWith(".ts")) {
135
+ results.push(filePath);
136
+ }
137
+ }
138
+ return results;
139
+ }
140
+ /**
141
+ * 映射脚本路径
142
+ * @param {string} path 脚本路径
143
+ */
144
+ function srcScriptMapper(path) {
145
+ path = path.replace(/[\\\/]/g, "/"); // 统一路径分隔符
146
+ path = path.replace("src", "../output"); // 替换 src 为 output
147
+ path = path.replace(".ts", ".js"); // 替换后缀名
148
+ path = `<script type="text/javascript" src="${path}"></script>`;
149
+ return path;
150
+ }
151
+ /**
152
+ * 复制视频文件
153
+ */
154
+ function copyMedia() {
155
+ const srcMediaDir = node_path_1.default.resolve("./src/media");
156
+ const distMediaDir = node_path_1.default.resolve("./dist/media");
157
+ if (!node_fs_1.default.existsSync(srcMediaDir))
158
+ return;
159
+ (0, utils_js_1.copyDirSync)(srcMediaDir, distMediaDir);
160
+ }
161
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_path_1 = require("node:path");
4
+ const node_fs_1 = require("node:fs");
5
+ const utils_js_1 = require("./utils.js");
6
+ const myutils_1 = require("@hnb-pkg/myutils");
7
+ // IIFE
8
+ (async function () {
9
+ const cwd = process.cwd();
10
+ const curFiles = node_fs_1.default.readdirSync(cwd);
11
+ const versionDirs = curFiles.filter(f => node_fs_1.default.statSync(node_path_1.default.join(cwd, f)).isDirectory() && /^v\d+$/.test(f));
12
+ if (versionDirs.length === 0)
13
+ console.log("未找到版本目录,请确保存在 v1, v2 等版本目录");
14
+ // 获取最高版本号
15
+ const version = versionDirs.map(v => parseInt(v.replace("v", ""))).sort((a, b) => b - a)[0];
16
+ const curVersion = `v${version}`;
17
+ const nextVersion = `v${version + 1}`;
18
+ console.log(`${myutils_1._c.m("[NEW VER]")} ${myutils_1._c.y((0, utils_js_1.nowStr)())} 复制版本 ${myutils_1._c.c(curVersion)} -> ${myutils_1._c.c(nextVersion)}`);
19
+ (0, utils_js_1.copyDirSync)(curVersion, nextVersion);
20
+ })();
21
+ //# sourceMappingURL=new-ver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-ver.js","sourceRoot":"","sources":["../src/new-ver.ts"],"names":[],"mappings":";;AAAA,yCAA6B;AAC7B,qCAAyB;AACzB,yCAAiD;AACjD,8CAAsC;AAEtC,OAAO;AACP,CAAC,KAAK;IACJ,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,QAAQ,GAAG,iBAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3G,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAExE,UAAU;IACV,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,GAAG,YAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,YAAE,CAAC,CAAC,CAAC,IAAA,iBAAM,GAAE,CAAC,SAAS,YAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,YAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvG,IAAA,sBAAW,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACvC,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 复制目录
3
+ * @param {string} src 源目录
4
+ * @param {string} dest 目标目录
5
+ */
6
+ export declare function copyDirSync(src: any, dest: any): void;
7
+ /**
8
+ * 获取当前时间字符串,格式:YYYY-MM-DD HH:mm:ss
9
+ * @returns {string} 时间字符串
10
+ */
11
+ export declare function nowStr(): string;
12
+ /**
13
+ * 输出日志
14
+ * @param {string} prefix 前缀
15
+ * @param {string} message 消息
16
+ */
17
+ export declare function logInfo(prefix: any, message: any): void;
18
+ /**
19
+ * 打开目录
20
+ * @param {string} dir 目录
21
+ */
22
+ export declare function openDir(dir: any): void;
23
+ export declare class Logger {
24
+ prefix: string;
25
+ /**
26
+ * 构造函数
27
+ * @param {string?} prefix
28
+ */
29
+ constructor(prefix: any);
30
+ info(msg: any): void;
31
+ }
32
+ /**
33
+ * 查找所有的 script 标签
34
+ * @param htmlContent 内容
35
+ * @returns 匹配结果数组
36
+ */
37
+ export declare function findAllScriptTags(htmlContent: string): string[];
package/dist/utils.js ADDED
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = void 0;
4
+ exports.copyDirSync = copyDirSync;
5
+ exports.nowStr = nowStr;
6
+ exports.logInfo = logInfo;
7
+ exports.openDir = openDir;
8
+ exports.findAllScriptTags = findAllScriptTags;
9
+ const node_fs_1 = require("node:fs");
10
+ const node_path_1 = require("node:path");
11
+ const node_child_process_1 = require("node:child_process");
12
+ const myutils_1 = require("@hnb-pkg/myutils");
13
+ /**
14
+ * 复制目录
15
+ * @param {string} src 源目录
16
+ * @param {string} dest 目标目录
17
+ */
18
+ function copyDirSync(src, dest) {
19
+ if (!node_fs_1.default.existsSync(dest))
20
+ node_fs_1.default.mkdirSync(dest, { recursive: true });
21
+ for (const entry of node_fs_1.default.readdirSync(src, { withFileTypes: true })) {
22
+ const srcPath = node_path_1.default.join(src, entry.name);
23
+ const destPath = node_path_1.default.join(dest, entry.name);
24
+ if (entry.isDirectory()) {
25
+ copyDirSync(srcPath, destPath);
26
+ }
27
+ else {
28
+ node_fs_1.default.copyFileSync(srcPath, destPath);
29
+ }
30
+ }
31
+ }
32
+ /**
33
+ * 获取当前时间字符串,格式:YYYY-MM-DD HH:mm:ss
34
+ * @returns {string} 时间字符串
35
+ */
36
+ function nowStr() {
37
+ const now = new Date();
38
+ const Y = now.getFullYear();
39
+ const M = String(now.getMonth() + 1).padStart(2, "0");
40
+ const D = String(now.getDate()).padStart(2, "0");
41
+ const h = String(now.getHours()).padStart(2, "0");
42
+ const m = String(now.getMinutes()).padStart(2, "0");
43
+ const s = String(now.getSeconds()).padStart(2, "0");
44
+ return `${Y}-${M}-${D} ${h}:${m}:${s}`;
45
+ }
46
+ /**
47
+ * 输出日志
48
+ * @param {string} prefix 前缀
49
+ * @param {string} message 消息
50
+ */
51
+ function logInfo(prefix, message) {
52
+ console.log(`${myutils_1._c.m(prefix)} ${myutils_1._c.y(nowStr())} ${message}`);
53
+ }
54
+ /**
55
+ * 打开目录
56
+ * @param {string} dir 目录
57
+ */
58
+ function openDir(dir) {
59
+ node_child_process_1.default.execSync(`start "" "${dir}"`); // explorer 无法识别正斜杠
60
+ }
61
+ class Logger {
62
+ prefix = "[LOG]";
63
+ /**
64
+ * 构造函数
65
+ * @param {string?} prefix
66
+ */
67
+ constructor(prefix) {
68
+ if (prefix)
69
+ this.prefix = prefix;
70
+ }
71
+ info(msg) {
72
+ console.log(`${myutils_1._c.m(this.prefix)} ${myutils_1._c.y(nowStr())} ${msg}`);
73
+ }
74
+ }
75
+ exports.Logger = Logger;
76
+ /**
77
+ * 查找所有的 script 标签
78
+ * @param htmlContent 内容
79
+ * @returns 匹配结果数组
80
+ */
81
+ function findAllScriptTags(htmlContent) {
82
+ const foundScriptTag = htmlContent.matchAll(/<script type='text\/javascript'.*?><\/script>/g);
83
+ return Array.from(foundScriptTag).map(t => t[0]);
84
+ }
85
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@hnb-pkg/apacker",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "scripts": {
6
+ "build": "tsc",
7
+ "pub": "npm run build && npm publish --access public",
8
+ "test": "nodemon ./test/main.ts"
9
+ },
10
+ "bin": {
11
+ "apacker": "dist/bin/apacker.js"
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "devDependencies": {
17
+ "@types/archiver": "^7.0.0",
18
+ "@types/node": "22",
19
+ "prettier": "^3.7.3",
20
+ "typescript": "^5.5.3"
21
+ },
22
+ "peerDependencies": {
23
+ "typescript": "^5.5.3"
24
+ },
25
+ "dependencies": {
26
+ "@hnb-pkg/myutils": "^1.0.8",
27
+ "archiver": "^7.0.1"
28
+ },
29
+ "pnpm": {
30
+ "overrides": {}
31
+ }
32
+ }