New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sftp-uploader

Package Overview
Dependencies
Maintainers
4
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sftp-uploader - npm Package Compare versions

Comparing version 0.1.7 to 1.0.0

dist/index.d.ts

30

package.json
{
"name": "sftp-uploader",
"version": "0.1.7",
"version": "1.0.0",
"description": "sftp-uploader",
"main": "index.js",
"main": "dist/index.js",
"module": "dist/index.mjs",
"files": [
"dist",
"src/type.d.ts",
"package.json",
"README.md",
"LICENSE"
],
"exports": {
"import": "./dist/index.mjs",
"require": "./dist/index.js"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"pub": "nrm use npm && npm publish && nrm use taobao"
"build": "tsup src/index.ts --format cjs,esm --dts"
},

@@ -13,7 +24,14 @@ "author": "",

"dependencies": {
"chalk": "4.1.2",
"single-line-log": "^1.1.2",
"ssh2-sftp-client": "^5.3.2"
},
"devDependencies": {
"@types/node": "^17.0.23",
"glob": "^7.1.6",
"path": "^0.12.7",
"single-line-log": "^1.1.2",
"ssh2-sftp-client": "^5.3.2"
"tsup": "^4.11.2",
"typescript": "^4.6.3",
"vite": "^2.3.7"
}
}

112

README.md
# sftpupload
### 引入
> `sftp-uploader` 是一款基于 `ssh2-sftp-client` 封装的文件上传插件,支持 `webpack` 及 `vite` ,可以实现将打包好的项目文件上传到指定的sftp服务器目录,支持集成为webpack或vite插件或单独使用,支持自动创建上传目录。
```
yarn add sftp-uploader
npm i sftp-uploader
### Install
```sh
$ yarn add sftp-uploader
$ npm i sftp-uploader
```
### 简介
`sftp-uploader` 是一款基于 `ssh2-sftp-client` 封装的文件上传插件,通过监听webpack打包完成事件,可以实现将打包好的项目文件上传到指定的sftp服务器目录,支持集成为webpack插件或单独使用,支持自动创建上传目录。
### 配置

@@ -19,54 +17,48 @@

const sftp = new sftpUploader({
// 需要上传文件的目录
dir: path.join(__dirname, 'dist/'),
// 上传到的目录
url: '******',
// sftp地址
host: '*****',
// sftp端口
port: '*****',
// 账号
username: '*****',
// 密码
password: '*****',
// 延迟上传时间(毫秒),解决部分项目会触发多次打包完成的问题
delay: 0,
// 上传文件过滤器,可以过滤掉不需要的文件,返回false将不会上传该文件(可选)
uploadFilter(file) => {
return file.name.endsWith(.gz) ? true : false
},
// 删除文件过滤器,可以过滤掉不需要删除的文件,返回false将不会删除该文件(可选)
deleteFilter(file) => {
return file.name.endsWith(.gz) ? true : false
},
// 预览链接接地址(可选)
previewPath: 'https://www.baidu.com'
})
const sftp = sftpUploader({
dir: path.join(__dirname, 'dist/'), // 需要上传文件的目录
url: '******', // 上传到的目录
host: '*****', // sftp地址
port: '*****', // sftp端口
username: '*****', // 账号
password: '*****', // 密码
// 延迟上传时间(毫秒),解决部分项目会触发多次打包完成的问题
delay: 0,
// 上传文件过滤器,可以过滤掉不需要的文件,返回false将不会上传该文件(可选)
uploadFilter(file) => {
return file.name.endsWith(.gz) ? true : false
},
// 删除文件过滤器,可以过滤掉不需要删除的文件,返回false将不会删除该文件(可选)
deleteFilter(file) => {
return file.name.endsWith(.gz) ? true : false
},
// 预览链接接地址(可选)
previewPath: 'https://www.baidu.com'
})
```
### webpack中使用(vue项目为例)
# 使用
## 配合打包命令使用
```javascript
// vue.config.js
// webpack中使用
//vue.config.js
module.exports = {
configureWebpack: config => {
return {
plugins: [sftp]
plugins: [
sftpUploader({ ... })
]
}
}
}
```
# 使用
## 配合打包命令使用(webpack中)
1. 第一种方式直接在打包命令行后增加`deploy`参数即可, 如 `npm run build deploy` 或 `yarn build deploy` , 即可在打包完成后自动上传。
2. 第二种方式使用scripts配置,在package.json中添加如下配置
```javascript
// 通用
"scripts": {
"build": "vue-cli-service build --mode development",
"deploy": "yarn build deploy"
}
// 或使用环境变量配置
// vite中使用
//vite.config.js
export default defineConfig({
plugins: [
sftpUploader({ ... })
]
})
// package.json
// 1、window环境

@@ -85,21 +77,2 @@ "scripts": {

## 单独项目上传文件
#### 针对单独上传已经编译好的文件,不通过监听打包完毕命令上传,可直接在vue.config.js最后加上如下代码
```javascript
// vue.config.js
// 没有process.env.NODE_ENV环境变量说明是单独运行
if (process.env.NODE_ENV === undefined) {
sftp.put()
}
```
```javascript
// 然后在项目根目录终端下运行如下命令
node vue.config.js
```
::: tip
以上两种情况可以并存
:::
### 上传任意项目

@@ -109,4 +82,3 @@ ```javascript

// 2、配置和webpack插件模式相同
sftp.put()
sftpUploader({ ... }).put()
// 然后在项目根目录终端下运行如下命令

@@ -113,0 +85,0 @@ node uploader.js

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc