我需要一个代理来在开发过程中与一些外部 API 进行交互。我摸索着grunt-connect-proxy,但是作为一个 Grunt noobie,我无法让它在ember-app-kit的 Gruntfile 或 options/connect.js 文件中工作。
假设在开发中需要代理是一项相当常见的任务,有人可以展示一个如何在 ember-app-kit 中设置代理的示例吗?
我需要一个代理来在开发过程中与一些外部 API 进行交互。我摸索着grunt-connect-proxy,但是作为一个 Grunt noobie,我无法让它在ember-app-kit的 Gruntfile 或 options/connect.js 文件中工作。
假设在开发中需要代理是一项相当常见的任务,有人可以展示一个如何在 ember-app-kit 中设置代理的示例吗?
假设你已经安装了 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 。