使用Angular Cli的环境和导入的模块
我在模块中使用angular-cli的环境变量.
当我在另一个项目中导入我的模块时,是否可以在编译和运行时使用我的项目的环境变量? 我的模块 myModule/ src/ /app my.service.ts /environments environment.prod.ts environment.ts app.module.ts etc. 我的模块是my.service.ts import { environment } from './environments/environment'; @Injectable() export class MyService { private title = environment.title; showTitle(): string { return this.title; } etc. } 我的模块的环境.ts export const environment = { production: false,title: 'My Module in dev mode' } 我的模块的environment.prod.ts export const environment = { production: true,title: 'My Module in prod mode' } 我的项目 myProject/ src/ /app app.component.ts /environments environment.prod.ts environment.ts app.module.ts etc. 我的项目是AppComponent Component({ selector: 'app-root',template: `<h1>{{title}}</h1>` }) export class AppComponent { title: string; constructor(myService: MyService) { this.title = myService.showTitle(); } } 我的项目的环境 export const environment = { production: false,title: 'My Project in dev mode' } 我的项目是environment.prod.ts export const environment = { production: true,title: 'My Project in prod mode' } 目前,当我运行我的项目时,我看到我的模块处于开发模式,但我想在开发模式下看到我的项目. 有没有办法从’/ src / my-app / environments / environment’导入来自相对网址的import.ts,例如import {environment}?
据我所知,你有一个项目:’MyProject’和一个外部模块’MyModule’,你想在’MyModule’服务’MyService’中导入’MyProject’环境变量.
恕我直言,从设计角度来看,最好将环境变量作为参数传递给您打算使用它的“MyService”. 但是,如果您坚持导入它,要导入两个环境变量,请在my.service.ts中试试这个: import { myModuleEnvironment } from './environments/environment'; import { myProjectEnvironment } from '../../../src/app/environments/environment 考虑您的项目文件夹结构: myProject/ myModule/ src/ /app my.service.ts /environments environment.prod.ts environment.ts app.module.ts src/ /app app.component.ts /environments environment.prod.ts environment.ts app.module.ts etc. 更多澄清: TypeScript导入规则与nodeJS具有相同的约定.如果导入以点开头: import {library} from './some/library/path'; 然后将其视为声明导入的文件的相对路径.但是,如果它是绝对路径(例如,导入angular2组件): import {Component} from '@angular/core'; 因此,Typescript认为这是一个外部模块,它上升到文件树,直到找到package.json文件.然后进入node_modules文件夹,找到与导入名称相同的文件夹(在上例中:@ angular / core).然后在模块的package.json中查找主.d.ts或.ts文件,然后加载它,或者查找与指定文件同名的文件或index.d.ts或index.ts文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |