gpt4 book ai didi

angular - 使用环境为ng服务设置proxy.config.js属性

转载 作者:行者123 更新时间:2023-12-02 14:56:15 26 4
gpt4 key购买 nike

标题几乎概括了一切。我有一个 proxy.conf.js 文件,它在 ng serve 上被命中我只想从环境 ts 文件或 json 文件中获取目标 url,或者我现在并不关心,我只是想要一个地方来存储分别为其他文件提供的 URL...

所以environment.congif.ts (它不包含在任何配置中,只是一个用于存储当前提供environment.dev.ts但无法提供proxy.conf.js的设置对象的文件);

export const environment = {
production: false,
apiUrl: 'http://localhost:12345'
};

然后proxy.conf.js ;

var settings = require('./src/environments/environment.config');

const PROXY_CONFIG = [{
"/restapi/*": {
"target": settings.environment.apiUrl,
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
}]

module.exports = PROXY_CONFIG

出于某种原因,我显然不明白(特别是因为智能感知填充了文件和属性的路径),我在 ng serve 上收到错误;

Cannot find module './src/environments/environment.config'
Error: Cannot find module './src/environments/environment.config'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
........

所以我的问题是,为什么不能这样解决?我只想要一个文件来设置目标 URL,该文件从 environment.config.ts 提供所需的位置。

ADDENDUM:因此环境.*.ts 文件位于 /src/environments就像任何默认安装一样。 proxy.conf.js 与其他默认文件(如 package.json 或 angular.json)一起位于项目根目录中。路径都是正确的,智能感知甚至会填充这些值,但无论出于何种原因,当从环境中导入 const 对象时,proxy.conf.js 都不会很好地发挥作用(在构建时,尽管就像我说的智能感知发现一切都很好)。因此,就像标题所传达的那样,我遇到的唯一问题是将 url 从环境 ts 文件中读取到代理 js 文件中,这样我就只有一个文件来维护 apiurl。

最佳答案

嘿克里斯,如果您需要配置代理,您只需创建一个自定义文件名为 proxyconfig.json 并将其放入应用程序目录中,该目录将位于应用程序的 src 文件夹之外。

1- 模拟您在配置代理文件之前需要从此端点获取一些数据

this.http.get('http://locahost:3000/api/v1/people')

2- proxyconfig.json 将包含此 json

{
"/api/*": { //
"target": "http://localhost:3000", // the target url for backend endpoint
"secure": false,
"logLevel": "debug",
"changeOrigin": true
}
}

3-您需要在 package.json 中进行一些更改

   "scripts": {
"start": "ng serve -- --proxy-config ../../proxyconfig.json",
...
}
}

4-您的服务中的端点应更改为

this.http.get('/api/v1/people')

5-运行ng服务代理将成功工作

我希望有帮助:))

关于angular - 使用环境为ng服务设置proxy.config.js属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53876823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com