好吧,假设我有这样的结构:
/
- clients
-- client-1
--- _script.ts
-- client-2
--- _script.ts我的angular.json是这样的:
...
'projects': {
"client-1": {...},
"client-2": {...},
}
...假设我有相同的代码,但是在两个script.ts文件中变量的值不同,如下所示:
客户-1/script.ts:
export const theme = {
data_url_api: 'https://client-1.com/api',
}客户-2/script.ts:
export const theme = {
data_url_api: 'https://client-2.com/api',
}在不强制“客户端路径”的情况下,如何在代码中动态导入和调用该文件?当然,查看我在ng serve或ng build上使用的ng serve。
我的愿望是像这样导入它,让我们再说一遍,在一个‘data.service.ts’中:
import { theme } from 'script';角度本身会处理“进口哪一个”。
有办法吗?
发布于 2018-11-13 13:28:07
如果您有两个项目,这将是一个“共享”服务/组件/文件.
因此,我会将其标记为这样(例如,将该文件放在一个特定的共享文件夹中),这将帮助您(以及您的同事)记住,对该文件的每一项更改都可能对多个项目产生影响。
导入时,我使用tsconfig.json中的“路径”
{
"compilerOptions": {
"baseUrl": "projects",
"paths": {
"@project1/*": [
"myFirstProject/src/app/*"
],
"@project2/*": [
"mySecondProject/src/app/*"
],
"@shared/*": [
"shared/src/*"
],
}
}
}现在我可以用
import {something} from @shared/myTheme;从各地
温暖的问候
编辑:
我的错,错误的解决方案:-)
如果它是相同的服务,但是不同的端点,我使用一个环境变量来更改它。在angular.json中,我用特定于项目的environment.ts覆盖通用environment.ts。
...
"configurations": {
"dev": {
"fileReplacements": [
{
"replace": "projects/environments/environment.ts",
"with": "projects/myFirstProject/src/environments/environment.dev.ts"
}
]
},
...
}我有每个项目和每个阶段的环境文件(有3个阶段=> 6环境文件的2个项目)。
有了这个功能,我就能够对每个应用程序进行全局的更改,并取决于暂存环境。
抱歉你误会了
温暖的问候
第二次编辑
在它制造问题之前。如果根据配置替换文件,则不仅应该修改“构建”部分,还要修改“服务”部分,以便在使用ng serve时也可以使用您的环境。
"projects": {
"myFirstProject": {
"root": "projects/myFirstProject/",
"sourceRoot": "projects/myFirstProject/src",
"projectType": "application",
...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
...
},
"configurations": {
"dev": {
"fileReplacements": [
{
"replace": "projects/environments/environment.ts",
"with": "projects/myFirstProject/src/environments/environment.dev.ts"
}
]
},
"proxy": {
"fileReplacements": [
{
"replace": "projects/environments/environment.ts",
"with": "projects/myFirstProject/src/environments/environment.proxy.ts"
}
]
},
"production": {
"fileReplacements": [
{
"replace": "projects/environments/environment.ts",
"with": "projects/myFirstProject/src/environments/environment.prod.ts"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myFirstProject:build:dev"
},
"configurations": {
"dev": {
"browserTarget": "myFirstProject:build:dev"
},
"proxy": {
"browserTarget": "myFirstProject:build:proxy"
},
"production": {
"browserTarget": "myFirstProject:build:production"
}
}
},https://stackoverflow.com/questions/53281966
复制相似问题