Zan Proxy 官网链接 https://youzan.github.io/zan-proxy/
Mac 需要 安装证书 https://youzan.github.io/zan-proxy/book/quick-start/cert.html

一、Zan Proxy 是什么?

官方介绍:Zan Proxy 是一个用Node.js编写的HTTP代理服务器,可用于修改请求地址和模拟响应数据。

可以通过这个代理、转发线上**获取资源的请求**,拿取本地**实时的静态代码**【css,js,html】
这样就不用每次本地调试完,打包、部署服务器查看了。本地就可以直接预览部署之后的效果。
解决跨域的问题。

二、安装Zan Proxy

方式一【推荐】、也可以直接 下载客户端:传送门
方式二、可以通过官方的 npm 或是 yarn 来安装。

通过Yarn安装

yarn global add zan-proxy

通过NPM安装

npm i -g zan-proxy

安装检验

zan-proxy --version

三、安装 Chrome 插件 Proxy SwitchyOmega

一、官方下载地址: https://proxy-switchyomega.com/download/

一、github下载:https://github.com/FelisCatus/SwitchyOmega/releases

四、配置 Zan Proxy

第一步新建
第二步启用转发
第三步前往编辑新的转发规则集

第四步 新增

第五步 创建规则集

第六步 新增转发变量 和 新增规则

第七步 通过线上地址查看静态资源的url

第八步、 输入对应的url特征:
例如:
1.

  • xxxx.xxxx.cn/mall-cloud/xxx/(js|css)/(.+).(.+).(js|css)
  • ${ 转发变量名 }/$1/$2.$1
  • xxxx.xxxx.cn/mall-cloud/xxx/(js|css)/(.+).(js|css)
  • ${ss}/$1/$2.$1

第九步、选择使用的规则集

第十步、打开服务地址
使用插件选择 proxy 即可

proxy 配置:

五(可选)、本地项目启动 npm run watch

增加文件:

watch.js

const ora = require('ora');
const fs = require('fs-extra');
const chalk = require('chalk');
const webpack = require('webpack');
const config = require('../config');
const webpackConfig = require('./webpack.watch.conf');
const spinner = ora('building for watch...');
spinner.start();process.env.NODE_ENV = 'development';fs.removeSync(config.build.pages);
fs.removeSync(config.build.output);const compiler = webpack(webpackConfig);
compiler.watch({aggregateTimeout: 300,poll: undefined
}, (err, stats) => { // Stats Objectif (err) throw err;process.stdout.write(`${stats.toString({colors: true,modules: false,children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.chunks: false,chunkModules: false})}\n\n`);if (stats.hasErrors()) {// console.log(stats.toJson());console.log(chalk.red('  Build failed with errors.\n'));process.exit(1);}
});

webpack.watch.conf.js

const path = require('path');
const utils = require('./utils');
const webpack = require('webpack');
const config = require('../config');
const merge = require('webpack-merge');
const baseWebpackConfig = require('./webpack.base.conf');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');const {getAppName} = require('../../utils');process.env.NODE_ENV = 'production';const webpackConfig = merge(baseWebpackConfig, {module: {rules: utils.styleLoaders({sourceMap: false,extract: true})},devtool: false,output: {path: config.build.output,publicPath: `https://file.yzcdn.cn/mall-cloud/${getAppName()}/`,filename: 'js/[name].js',chunkFilename: 'js/[id].js'},plugins: [// new webpack.ProgressPlugin(),new webpack.DefinePlugin({'process.env': {NODE_ENV: JSON.stringify('production')}}),// new UglifyJsPlugin({//   uglifyOptions: {//     compress: {//       warnings: false//     }//   },//   sourceMap: false,//   parallel: true// }),// extract css into its own filenew ExtractTextPlugin({filename: 'css/[name].css',allChunks: true,}),// Compress extracted CSS. We are using this plugin so that possible// duplicated CSS from different components can be deduped.new OptimizeCSSPlugin({cssProcessorOptions: { safe: true }}),// keep module.id stable when vendor modules does not changenew webpack.HashedModuleIdsPlugin(),// enable scope hoistingnew webpack.optimize.ModuleConcatenationPlugin(),// split vendor js into its own filenew webpack.optimize.CommonsChunkPlugin({name: 'vendor',minChunks (module) {// any required modules inside node_modules are extracted to vendorreturn (module.resource &&/\.js$/.test(module.resource) &&module.resource.indexOf(path.join(__dirname, '../node_modules')) === 0);}}),].concat(utils.htmlPlugin())
});// if (config.build.bundleAnalyzerReport) {//   const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
//   webpackConfig.plugins.push(new BundleAnalyzerPlugin());
// }module.exports = webpackConfig;

package.json

"scripts": {"dev": "node webpack/dev.js","watch": "node webpack/watch.js","build": "node webpack/build.js"},

Zan Proxy:解决前端跨域、服务端预览本地文件、相关推荐

  1. 解决前端跨域的几种方法

    解决前端跨域的几种方法 了解跨域出现的原因 解决跨域的几种方法 想要解决跨域 先要知道为什么会出现跨域 跨域:指的是浏览器不能执行其他网站的脚本 它是由浏览器的同源策略造成的 是浏览器对javascr ...

  2. Nginx 代理解决前端跨域问题

    目录 一.什么是 nginx 二.nginx 的用途 三.代理 1.正向代理 2.反向代理 四.nginx.conf 配置文件的基本结构 五.nginx 的内置变量 六.nginx 解决跨域的原理 七 ...

  3. 使用webpack-dev-server设置反向代理解决前端跨域问题

    使用webpack-dev-server设置反向代理解决前端跨域问题 参考文章: (1)使用webpack-dev-server设置反向代理解决前端跨域问题 (2)https://www.cnblog ...

  4. webpack+vue解决前端跨域问题

    webpack+vue解决前端跨域问题 参考文章: (1)webpack+vue解决前端跨域问题 (2)https://www.cnblogs.com/wei-dong/p/10689072.html ...

  5. 如何用Nginx解决前端跨域问题?

    如何用Nginx解决前端跨域问题? 参考文章: (1)如何用Nginx解决前端跨域问题? (2)https://www.cnblogs.com/lovesong/p/10269793.html 备忘一 ...

  6. ashx获取input file 文件_前端战五渣学前端——FileReader预览本地文件

    距离上一篇博客将近一个半月了,这一个多月有点烦躁,静不下心来学习,也不知道为什么,玩的也不算太好,还感冒.可能是天气热了吧,有点点躁动.上周看了<哪吒--魔童降世>还不错,还看了新出的&l ...

  7. 前端交互之“解决前端跨域的三种方法”

    1.什么是前端跨域? 跨域是浏览器为了安全而做出的限制策略:浏览器请求必须遵从同源测试: http://www.bilibili.com:8080:/anime/?key=calue路径 键值对 同协 ...

  8. 前端跨域请求get_解决前端跨域请求的几种方式

    利用 JSONP 实现跨域调用 说道跨域调用,可能大家首先想到的或者听说过的就是 JSONP 了. 1.1 什么是JSONP JSONP 是 JSON 的一种使用模式,可以解决主流浏览器的跨域数据访问 ...

  9. 使用PDF.js实现前端和手机端网页预览PDF文件(可定制,支持本地文件、Base64编码和远程URL跨域方式)

    1.插件下载地址:https://mozilla.github.io/pdf.js/ 下载后解压pdfjs-1.10.88-dist.zip文件后得到: 2.把pdfjs-1.10.88-dist放到 ...

最新文章

  1. C/C++中constkeyword
  2. 转 java c++互传arraylist
  3. Nmap帮助文档解释
  4. c/c++左值和右值
  5. g++ linux 编译开栈_Linux下编写C++服务器(配置C++编译调试环境)
  6. CRM_UPLOAD_BW
  7. Linux日志查找技巧
  8. dns服务器v6解析 windows_04:缓存DNS、Split分离解析、电子邮件通信、Web服务器项目实战...
  9. android ringtonemanager raw,ringtone播放自定义的声音
  10. 丰田pcs可以关闭吗_论安全性能,广汽丰田TNGA车型如何?
  11. bigdecimal 科学计数转普通计数_LoaRunner性能测试教程:Windows计数器(2)
  12. linux db2 64位下载,DB2(Linux 64位)安装教程
  13. 第十三届蓝桥杯省赛Java-B组
  14. 天然气阶梯是按年还是按月_天然气阶梯不是明年1月1号开始么?怎么现在充气就限量了...
  15. DHCP报文及其格式
  16. 服务器打补丁重启时候系统掉,服务器自动重启我的服务器windowssever高级版,但每次开 爱问知识人...
  17. 23种PHP开发工具PHP IDE集合
  18. 微信小程序中使用Echarts 折线图、柱形图、饼状图
  19. 小米android os找不到,小米的MIUI12是OS?网友:MIUI离操作系统还差一个安卓
  20. 苹果首款无线充电宝曝光,我们要怎么去选择

热门文章

  1. vega8显卡和mx250哪个好_Ryzen 7 4800U 现身 3DMark 11 数据库,Vega 8 核显也能超越 MX 250...
  2. 大数据学习线路及各阶段学习书籍推荐
  3. matlab做空间热扩散图,热扩散matlab实现
  4. powerdesigner数据库建模工具
  5. HTML中粗体strong与b,斜体em与i标签的区别
  6. 树叶贴画机器人_儿童创意手工的意义是什么?
  7. AntConc3.2.0的使用说明
  8. 云计算学习路线思维导图
  9. 算法之路_11、优化后的快速排序
  10. Python实现文章自动生成