我想在开发期间使用checker module
来服务我的LitElement应用,而不必等待polymer serve
在每次更改后完成。但是,该应用程序使用相对URL进行API访问,例如polymer build
,并且AFAIK我无法使GET /api/api_method
和服务器在同一端口(例如polymer serve
)上工作。
当前,我运行localhost:8080
,然后运行本地Python服务器,该服务器将Polymer文件作为静态文件提供。
理想的情况是:
polymer build
然后为在聚合物构建目录中找到的路由提供服务,否则,请求将被路由到$ run_my_server.sh --port=8081
$ polymer serve --api_server="localhost:8081"
。
是否还有其他方法可以设置本地开发流程,而无需在每次更改后重新构建整个应用程序?
答案 0 :(得分:1)
通常,您将使用代理中间件来执行此操作-但是,聚合物服务器不允许添加您自己的中间件。
因此,您有2个选择:
以es-dev-server为例。
安装
npm i -D es-dev-server koa-proxies
创建一个es-dev-server.config.js
const proxy = require('koa-proxies');
module.exports = {
port: 9000,
middlewares: [
proxy('/api', {
target: 'http://localhost:8081',
})
],
};
开始
es-dev-server --node-resolve
现在,如果您按http://localhost:9000,则es-dev-server将为您提供服务。但是,如果您点击http://localhost:9000/api,它将实际上从您的api服务器上投放。
这样做可以在从api请求时简单地使用fetch,因为所有请求都来自同一个域+端口。
您可以在此处找到更多详细信息:https://open-wc.org/developing/es-dev-server.html#custom-middlewares-proxy
PS:我是共同维护人