我需要一个代理来在开发期间与一些外部API进行交互。我跟grunt-connect-proxy摸索不动,但是我觉得它是Grunt noobie,但是我没能在ember-app-kit的Gruntfile或options / connect.js文件中工作。
假设在开发中需要代理是一项相当常见的任务,有人可以展示如何在ember-app-kit中设置代理吗?
答案 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。