node项目部署到ftp

简介

对于node项目build构建完成后,可通过npm插件ftp-deploy部署上传到ftp服务器

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var FtpDeploy = require("ftp-deploy");
var ftpDeploy = new FtpDeploy();

var config = {
user: "user",
// Password optional, prompted if none given
password: "password",
host: "ftp.someserver.com",
port: 21,
localRoot: __dirname + "/local-folder",
remoteRoot: "/public_html/remote-folder/",
// include: ["*", "**/*"], // this would upload everything except dot files
include: ["*.php", "dist/*", ".*"],
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true
deleteRemote: false,
// Passive mode is forced (EPSV command is not sent)
forcePasv: true,
// use sftp or ftp
sftp: false
};

ftpDeploy
.deploy(config)
.then(res => console.log("finished:", res))
.catch(err => console.log(err));

补充

  • ftp配置信息可用环境变量存储、调用;
  • 脚本执行时机可区分开发环境

插件

npm install --save-dev ftp-deploy

  • 使用
    1
    2
    3
    "scripts": {
    "deploy": "node deploy"
    },