0

我需要一个代理来在开发过程中与一些外部 API 进行交互。我摸索着grunt-connect-proxy,但是作为一个 Grunt noobie,我无法让它在ember-app-kit的 Gruntfile 或 options/connect.js 文件中工作。

假设在开发中需要代理是一项相当常见的任务,有人可以展示一个如何在 ember-app-kit 中设置代理的示例吗?

4

1 回答 1

2

假设你已经安装了 grunt-connect-proxy ( npm install grunt-connect-proxy --save-dev)

在 Gruntfile.js 中,在 test:server 和 server 任务中的 'connect:server' 之前添加 'configureProxies'

grunt.registerTask('server', "Run your server in development mode, auto-rebuilding when files change.",
                 ['build:debug', 'configureProxies', 'connect:server', 'watch:main']);

将以下内容添加到 tasks/helpers.js 中的 taskRequirements

'connectProxy': ['grunt-connect-proxy']

在 tasks/options/connect.js 中添加与服务器设置相同级别的代理设置

// example settings to proxy to a dev server
proxies: [{
  context: '/api',
  host: 'localhost',
  port: 7000,
  changeOrigin: true,
  rejectUnauthorized: false
}],

在同一个文件中,添加以下内容以要求中间件函数中的 proxyRequest

if (Helpers.isPackageAvailable("grunt-connect-proxy")) {
  result.splice(1,0, require("grunt-connect-proxy/lib/utils").proxyRequest);
}

有关更完整的示例,请参阅https://gist.github.com/jfranz/7034552 。

于 2013-10-18T00:21:42.363 回答