sftp-uploader
Advanced tools
Comparing version 0.1.7 to 1.0.0
{ | ||
"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 |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
163953
3
7
5160
1
6
85
13
1
+ Addedchalk@4.1.2
+ Addedansi-styles@4.3.0(transitive)
+ Addedchalk@4.1.2(transitive)
+ Addedcolor-convert@2.0.1(transitive)
+ Addedcolor-name@1.1.4(transitive)
+ Addedhas-flag@4.0.0(transitive)
+ Addedsupports-color@7.2.0(transitive)
- Removedglob@^7.1.6
- Removedpath@^0.12.7
- Removedbalanced-match@1.0.2(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removedfs.realpath@1.0.0(transitive)
- Removedglob@7.2.3(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.3(transitive)
- Removedminimatch@3.1.2(transitive)
- Removedonce@1.4.0(transitive)
- Removedpath@0.12.7(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedprocess@0.11.10(transitive)
- Removedutil@0.10.4(transitive)
- Removedwrappy@1.0.2(transitive)