Node.js的FTP上传客户端basic-ftp

2021-06-172802次阅读node

basic-ftp是Node.js的FTP客户端。它支持TLS上的FTPS,IPv6上的被动模式,具有基于承诺的API,并提供对整个目录进行操作的方法。

deploy.js代码如下:

#!/usr/bin/env node
const path = require('path');
const ftp = require('basic-ftp');
const chalk = require('chalk');

(async () => {

    // 当前工作目录的绝对路径
    const projectDir = path.resolve();

    // 当前工作目录的文件夹名
    const createDir = path.basename(projectDir);

    // dist路径-已打包需上传的代码路径
    const pagePath = path.resolve(process.cwd(), './dist/');

    // 在ftp的目录路径
    const remote = `/site/act/${createDir}`;

    const ftpConfig = {
        host: '***.***.***.***',
        port: 21,
        user: '用户名',
        password: '密码',
    };

    const client = new ftp.Client();

    // 将调试级别的信息记录到控制台 通过覆盖 client.ftp.log 来使用自己的日志记录库
    client.ftp.verbose = true;

    await client.access(ftpConfig);

    const remoteDir = path.posix.resolve(remote);

    // ensureDir -- 确认(remoteDir)目录是否存在于服务器上,并根据需要创建所有目录
    await client.ensureDir(remoteDir);
    // 上传文件
    await client.uploadDir(pagePath);

    const message = `https://test.website.com/${createDir}`;
    console.log(chalk.green('Please visit:'));
    console.log(chalk.green(message));

    client.close();

})();

然后packages.json文件中scripts对象新建

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "cross-env NODE_ENV=development webpack-dev-server --open --config ./webpackConfig/webpack.dev.js",
    "build": "cross-env NODE_ENV=production webpack  --config ./webpackConfig/webpack.prod.js",
    "deploy": "node ./webpackConfig/deploy"
  },

 

上一篇: Promise中then和catch的区别  下一篇: React之state数组数据改变页面不更新或视图不更新  

Node.js的FTP上传客户端basic-ftp相关文章