UNPKG

site-ftp

Version:

Upload project file to FTP site. 上传项目文件到FTP站点。

110 lines (109 loc) 4.28 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports"], factory); } })(function (require, exports) { "use strict"; exports.__esModule = true; var SiteFtp; (function (SiteFtp) { var EasyFtp = require('easy-ftp'); var EasyFTP = new EasyFtp(); var Spinner = require("ora")(); var defaultConfig = { host: 'localhost', port: 21, username: 'anonymous', password: 'anonymous@', type: 'ftp', from: ['dist/**'], to: '/public_html/', rm: true }; function exist(dir) { return new Promise(function (resolve, reject) { EasyFTP.exist(dir, function (exist) { if (exist) { resolve(exist); } else { reject(exist); } }); }); } function rm() { return new Promise(function (resolve, reject) { if (defaultConfig["rm"]) { var dir_1 = (typeof defaultConfig["rm"] === "string" ? defaultConfig["rm"] : defaultConfig["to"]); if (!dir_1) { Spinner.fail('`rm` or `to` configuration error!'); Spinner.stop(); EasyFTP.close(); reject(); return; } exist(dir_1).then(function () { Spinner.info('Deleting the ftp folder`' + dir_1 + '`'); EasyFTP.rm(dir_1, function (rm_err) { if (rm_err) { Spinner.fail('fail:' + rm_err); Spinner.stop(); EasyFTP.close(); reject(rm_err); } else { Spinner.succeed('Successfully deleted the ftp folder`' + dir_1 + '`'); resolve(); } }); }, function () { Spinner.warn('Directory not found, skipping delete directory:' + dir_1); resolve(); }); } else { Spinner.succeed('Skip deleting the ftp folder'); resolve(); } }); } function connect(options) { Spinner.start(); if (options !== null && typeof options === "object") { defaultConfig = Object.assign(defaultConfig, options); } Spinner.info(JSON.stringify(options)); Spinner.info('Connecting...'); EasyFTP.connect({ host: defaultConfig["host"], port: defaultConfig["port"], username: defaultConfig["username"], password: defaultConfig["password"], type: defaultConfig["type"] }); rm().then(function () { Spinner.info('Uploading...'); EasyFTP.upload(defaultConfig["from"], defaultConfig["to"], function (upload_err) { if (upload_err) { Spinner.fail(upload_err); } else { Spinner.succeed('Finished!'); } Spinner.stop(); EasyFTP.close(); }); }, function (rm_err) { Spinner.fail(rm_err); Spinner.stop(); EasyFTP.close(); }); } SiteFtp.connect = connect; })(SiteFtp = exports.SiteFtp || (exports.SiteFtp = {})); });