美文网首页
vue-cli2打包上传七牛云脚本配置

vue-cli2打包上传七牛云脚本配置

作者: chengfengwang | 来源:发表于2019-03-04 13:59 被阅读0次

打包脚本

var fs = require('fs');
var path = require('path');
var qiniu = require("qiniu");
//自己七牛云的秘钥
var accessKey = '';
var secretKey = '';
var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);


var config = new qiniu.conf.Config();
// 空间对应的机房,zone_z1代表华北,其他配置参见七牛云文档
config.zone = qiniu.zone.Zone_z1;
// 是否使用https域名
//config.useHttpsDomain = true;
// 上传是否使用cdn加速
//config.useCdnDomain = true;

var formUploader = new qiniu.form_up.FormUploader(config);
var putExtra = new qiniu.form_up.PutExtra();


main()

function main(){
    displayFile('./dist')
}
//upload('static/css/app.qwer.css',"./dist/static/css/app.qwer.css")
function upload(key,localFile) {
//这里base-html是存储空间名
    var Bucket = `base-html:${key}`;
    var options = {
        scope: Bucket,
        MimeType:0,
    };
    var putPolicy = new qiniu.rs.PutPolicy(options);
    var uploadToken = putPolicy.uploadToken(mac);

    formUploader.putFile(uploadToken, key, localFile, putExtra, function (respErr,
        respBody, respInfo) {
        if (respErr) {
            throw respErr;
        }
        if (respInfo.statusCode == 200) {
            console.log(respBody);
        } else {
            console.log(respInfo.statusCode);
            console.log(respBody);
            if (respBody.error) {
                console.log(respBody.error)
            }
        }
    });
}

//遍历文件夹
function displayFile(param) {
    //转换为绝对路径
    //var param = path.resolve(param);
    fs.stat(param, function (err, stats) {
        //如果是目录的话,遍历目录下的文件信息
        if (stats.isDirectory()) {
            fs.readdir(param, function (err, file) {
                file.forEach((e) => {
                    //遍历之后递归调用查看文件函数
                    //遍历目录得到的文件名称是不含路径的,需要将前面的绝对路径拼接
                    var absolutePath = path.join(param, e);
                    //var absolutePath = path.resolve(path.join(param, e));
                    displayFile(absolutePath)
                })
            })
        } else {
            //music-base-h5/这里是空间里的文件前缀
            var key = 'music-base-h5/' + param.split('dist/')[1];
            var localFile = './' + param;
            //console.log(key,localFile);
            upload(key,localFile)
        }
    })
}

vue-cli配置

修改html内资源引用地址

/config/index.js

    index: path.resolve(__dirname, '../dist/index.html'),

    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    // assetsPublicPath: '/',   
    //修改为:
    assetsPublicPath: 'http://pntn6hym0.bkt.clouddn.com/music-base-h5',

修改css内的资源引用

//更改 build/utils.js 文件中 ExtractTextPlugin 插件的options 配置:
if (options.extract) {
  return ExtractTextPlugin.extract({
    use: loaders,
    publicPath: '../../',         // 注意配置这一部分,根据目录结构自由调整
    fallback: 'vue-style-loader'
  })
} else {
  return ['vue-style-loader'].concat(loaders)
}

总结

配置并没有更改之前的打包生成结构,dist文件夹结构仍然是


dist

引用路径除了前缀cdn名称,路径也没有改变


html引用路径

只是我们上传到七牛的资源文件按引用路径把前缀补全了


上传后的文件名

相关文章

网友评论

      本文标题:vue-cli2打包上传七牛云脚本配置

      本文链接:https://www.haomeiwen.com/subject/lrwbuqtx.html