@kkkwww/deploy 1.0.10 → 1.0.11
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.
- package/lib/index.js +51 -5
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -88,13 +88,62 @@ function getTimeStamp() {
|
|
|
88
88
|
return new Date().toISOString().replace(/[:.]/g, '-');
|
|
89
89
|
}
|
|
90
90
|
// ==========================
|
|
91
|
+
// 检查远程文件是否相同
|
|
92
|
+
// ==========================
|
|
93
|
+
function isSameFile(sftp, localFile, remoteFile) {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
try {
|
|
96
|
+
const localStat = fs.statSync(localFile);
|
|
97
|
+
const remoteStat = yield sftp.stat(remoteFile);
|
|
98
|
+
// 比较大小和修改时间(秒级)
|
|
99
|
+
if (localStat.size === remoteStat.size &&
|
|
100
|
+
Math.floor(localStat.mtimeMs / 1000) === Math.floor(remoteStat.modifyTime / 1000)) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
// 远程文件不存在
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return false;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// ==========================
|
|
112
|
+
// 确保远程目录存在(逐级创建)
|
|
113
|
+
// ==========================
|
|
114
|
+
function ensureRemoteDir(sftp, remoteDir) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
const dirs = remoteDir.split('/').filter(Boolean);
|
|
117
|
+
let current = '';
|
|
118
|
+
for (const dir of dirs) {
|
|
119
|
+
current += '/' + dir;
|
|
120
|
+
try {
|
|
121
|
+
yield sftp.stat(current);
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
try {
|
|
125
|
+
yield sftp.mkdir(current);
|
|
126
|
+
console.log(`📁 创建远程目录:${current}`);
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
console.error(`❌ 创建目录失败:${current}`, err);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
// ==========================
|
|
91
136
|
// 上传文件
|
|
92
137
|
// ==========================
|
|
93
138
|
function uploadFile(sftp, localFile, remoteFile) {
|
|
94
139
|
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const fileName = path.basename(localFile);
|
|
141
|
+
if (yield isSameFile(sftp, localFile, remoteFile)) {
|
|
142
|
+
console.log(`⚡ 跳过已存在且相同的文件:${fileName}`);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
95
145
|
const fileSize = fs.statSync(localFile).size;
|
|
96
146
|
let uploaded = 0;
|
|
97
|
-
const fileName = path.basename(localFile);
|
|
98
147
|
console.log(`\n📤 上传:${fileName}`);
|
|
99
148
|
return new Promise((resolve, reject) => {
|
|
100
149
|
const readStream = fs.createReadStream(localFile);
|
|
@@ -133,7 +182,7 @@ function uploadWithConcurrency(tasks, concurrency) {
|
|
|
133
182
|
// ==========================
|
|
134
183
|
function uploadDirConcurrent(sftp, localDir, remoteDir) {
|
|
135
184
|
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
-
yield sftp
|
|
185
|
+
yield ensureRemoteDir(sftp, remoteDir);
|
|
137
186
|
const files = fs.readdirSync(localDir);
|
|
138
187
|
const tasks = [];
|
|
139
188
|
for (const file of files) {
|
|
@@ -157,7 +206,6 @@ function run() {
|
|
|
157
206
|
return __awaiter(this, void 0, void 0, function* () {
|
|
158
207
|
var _a;
|
|
159
208
|
const args = process.argv.slice(2);
|
|
160
|
-
// 版本
|
|
161
209
|
if (args.includes('-v') || args.includes('-V') || args.includes('--version')) {
|
|
162
210
|
console.log('┌─────────────────────┐');
|
|
163
211
|
console.log('│ deploy 部署工具 │');
|
|
@@ -197,7 +245,6 @@ function run() {
|
|
|
197
245
|
console.log('🔗 连接服务器中...');
|
|
198
246
|
yield sftp.connect(config);
|
|
199
247
|
console.log('✅ 连接成功\n');
|
|
200
|
-
// 备份
|
|
201
248
|
if (config.backup) {
|
|
202
249
|
try {
|
|
203
250
|
yield sftp.stat(config.remotePath);
|
|
@@ -209,7 +256,6 @@ function run() {
|
|
|
209
256
|
console.log('ℹ 远程目录不存在,跳过备份');
|
|
210
257
|
}
|
|
211
258
|
}
|
|
212
|
-
// 上传
|
|
213
259
|
const localAbs = path.resolve(config.localPath);
|
|
214
260
|
if (fs.statSync(localAbs).isDirectory()) {
|
|
215
261
|
console.log(`🚀 开始上传(并发 ${CONCURRENCY} 线程)`);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,6BAA6B;AAC7B,mBAAmB;AACnB,6BAA6B;AAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,6BAA6B;AAC7B,sBAAsB;AACtB,6BAA6B;AAC7B,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB,IAAI,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IACrC,CAAC;AACL,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;AAEd,6BAA6B;AAC7B,QAAQ;AACR,6BAA6B;AAC7B,MAAM,WAAW,GAAG,CAAC,CAAC;AAetB,6BAA6B;AAC7B,OAAO;AACP,6BAA6B;AAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;AAEjE,6BAA6B;AAC7B,QAAQ;AACR,6BAA6B;AAC7B,SAAS,OAAO;IACZ,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,6BAA6B;AAC7B,OAAO;AACP,6BAA6B;AAC7B,SAAS,SAAS;IACd,IAAI,CAAC;QACD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC;QAC1C,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IACd,OAAO,EAAE,CAAC;AACd,CAAC;AAED,6BAA6B;AAC7B,OAAO;AACP,6BAA6B;AAC7B,SAAS,SAAS,CAAC,MAAkB;IACjC,IAAI,CAAC;QACD,MAAM,KAAK,GAAG;YACV,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;SACxB,CAAC;QACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;AAClB,CAAC;AAED,6BAA6B;AAC7B,MAAM;AACN,6BAA6B;AAC7B,SAAS,YAAY;IACjB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,6BAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|