ming

Ming

a about xiaoming story

Github

E:421543076@qq.com

Q:421543076

gulp代理接口配置

最近新到一家公司,构建工具是bower+gulp+nginx.

但是呢,我又不想装nginx 并且嫌弃nginx配置接口代理太麻烦,我想到我上一家公司也是接口代理的。

然后我就看了下gulpfile.js配置,主要是用webserver。如下:


 ```
 var webServer = require('gulp-webserver');
 
 // WebServer
gulp.task('web-server', function() {
  var config;
  try {
    config = require('./config'); //接口代理配置文件
    gutil.log('load configuration file');
  } catch(e) {
    config = {
      api: 'http://localhost:8082/api'
    };
    gutil.log('using default configuration: ', config);
  }
  gulp.src('./src')
    .pipe(webServer({
      host: '0.0.0.0',
      fallback: 'index.html',
      livereload: {
        enable: true,
        port: 8001,
        filter: function(fileName) {
          if (fileName.match(/\.ts$/)) {
            return false;
          } else if(fileName.match(/\.js\.map$/)) {
            return false;
          } else {
            return true;
          }
        }
      },
      directoryListing: true,
      port: 8000,
      proxies:[{
        source: '/api',
        target: config.api 
      }]
    }));
});

```

但是我没用这一种方法,现在主要用到的是 browserSynchttp-proxy-middleware,如下:

```
var proxyMiddleware = require('http-proxy-middleware');
var browserSync = require('browser-sync');

var proxy = proxyMiddleware('/api', {
                target: 'https://127.0.0.1/',代理接口地址
                changeOrigin: true
            });
            
// Static server
gulp.task('serve', function() {
  browserSync({
    server: {
      baseDir: "./source/",
      middleware: [proxy]
    }
  });
  gulp.watch(["./source/**/*.html", "./source/**/*.css", "./source/**/*.js"]).on('change', reload);
});
```

我也不清楚哪个好哪个不好,暂时先解决问题吧。 如果讲述错误,还望指正。