gulp-upload-manifest
如果你有自己的资源上传接口,开发前端页面的时候最终需要引用上传之后的资源(如:cdn),上传并替换资源的工作可以通过该插件完成
安装
npm install gulp-upload-manifest
使用
假设你有上传文件的接口如下:
Request URL:http://mysite.com/uploadRequest Method:POST Content-Type:multipart/form-data ## 接口需要prefix字段 Content-Disposition: form-data; name="prefix"## 上传的文件的name为 resource Content-Disposition: form-data; name="resource"; filename="app.js"Content-Type: text/javascript
假设该接口返回的内容如下:
{
url: 'http://mysite.com/autoupload/app.js',
success: true,
}
新建的app工程目录如下:
app
├── app.html
└── asset
├── a.css
├── a.js
└── b.js
app.html文件内容如下:
my app test <!-- build:css src/a.css --> <!-- endbuild --> <!-- build:js src/combined.js --><!-- endbuild -->
gulpfile.js 如下
const gulp = ;const useref = ;const uploadManifest = var revReplace = ;const filter = gulp
执行完upload
任务后将会在dist
目录下生成upload-manifest.json
文件,该文件表示本地的资源文件同上传到服务器的资源文件的映射,并且dist/app.html
中的资源将被替换成如下(app.html):
my app test
API
uploadManifest(options)
options
以下字段都必须在调用接口的时候设置
options.url
type: string 上传文件的接口地址
options.formData
type: string default: {} 上传文件的接口需要的额外参数,参考formData
options.uploadName
type: string 上传文件接口中要上传文件对应的name
options.rspFun
type: function
return type: string
调用上传文件之后的回调函数, 第一个参数为返回的内容,该函数需要返回最终的url地址(即你的html页面中引用的地址),如果失败返回null
options { ifresponsesuccess return responseurl; else return null}