标题已经很明确了。我有一个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
我显然不理解其中的某些原因(特别是由于intellisense已经完美地填写了文件和属性的路径),但在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提供所需的位置。
补充说明:environment.*.ts文件位于/src/environments
中,与任何默认安装一样。proxy.conf.js与其他默认文件(如package.json或angular.json)位于项目根目录中。路径都是正确的,Intellisense甚至会自动填充值,但由于某种原因,在导入来自环境的const对象时,proxy.conf.js无法正常工作(在构建时,虽然像我说的那样,Intellisense可以完美地找到所有内容)。因此,正如标题所传达的那样,我唯一遇到的问题就是从环境ts文件中将URL读入到代理js文件中,以便我只需维护一个文件来管理apiurl。
environment.ts
文件名为environment.dev.ts
?我不确定是否是因为这个原因,但在angular.json
中提到,在生产构建期间,该文件将被environment.prod.ts
替换。这个错误不应该存在,因为该命令在生产构建期间执行,但仍然尝试使用默认的environment.ts
来查看错误是否仍然存在。当然,这两个文件仅用于设置生产和开发配置。 - sndpkprng build --prod
就会用environment.prod.ts替换environment.ts,我在里面有一个完全独立的文件,并未包含在任何构建配置中,它是专门用来存储dev配置(没有--prod标志的所有内容),我试图使用它来提供proxy.conf.js和environment.dev.ts的设置,environment.dev.ts可以很好地导入它的设置,问题在于proxy.conf.js的要求。 :/ - Chris W.require
只需要在 .js 文件中使用,任何 .ts 文件都能很好地处理来自另一个 ts 文件的导入。 - Chris W.