如何在基于Grunt.js的ember-app-kit中设置代理?

时间:2013-10-14 13:02:03

标签: ember.js ember-app-kit

我需要一个代理来在开发期间与一些外部API进行交互。我跟grunt-connect-proxy摸索不动,但是我觉得它是Grunt noobie,但是我没能在ember-app-kit的Gruntfile或options / connect.js文件中工作。

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

1 个答案:

答案 0 :(得分:2)

假设您已安装grunt-connect-proxy(npm install grunt-connect-proxy --save-dev

在Gruntfile.js中,在测试中的'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