Nor*_*tko 10 angular nx-workspace
我使用nx作为我的 monorepo 管理工具,其中包含 typescript api 和 Angular 前端。
现在我正在尝试让我的项目在github codespaces内运行。
当我尝试为它们提供服务时,除了角度应用程序之外,一切都工作正常。
我得到和错误Invalid Host/Origin header。可以使用该--public-host标志来解决此问题。
这就是我现在如何使用 codespaces 环境变量CODESPACE_NAME和 nx cli 来服务我的 Angular 应用程序:
npx nx serve application --publicHost=${CODESPACE_NAME}-4080.githubpreview.dev:443
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,是否可以在内部配置一个新目标project.json来为我的应用程序提供服务,例如npx nx run application:codespaces?
我已经尝试创建一个新目标,但它无法解析环境变量:
...
"codespaces": {
"executor": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
"browserTarget": "console:build:production"
},
"development": {
"browserTarget": "console:build:development"
}
},
"defaultConfiguration": "development",
"options": {
"publicHost": "${CODESPACE_NAME}-4080.githubpreview.dev:443",
"port": 4080
}
},
...
Run Code Online (Sandbox Code Playgroud)
正如@Jonathan所暗示的,许多默认执行器不会对选项字符串进行预处理。您可以创建自己的自定义执行程序,在其中使用环境变量值处理选项并自定义应用程序执行。
例子:
import { ExecutorContext } from '@nrwl/devkit';
import { RunCommandExecutorSchema } from './schema';
export default async function runExecutor(
options: RunCommandExecutorSchema,
context: ExecutorContext
) {
console.log('Executor ran for RunCommand', options);
// process env vars within options
options = JSON.parse(
JSON.stringify(options)
.replace(/\$(\w+)/g, (_, key) => process.env[key] || '')
.replace(/'/g, '"')
) as RunCommandExecutorSchema;
console.log('Executor ran for RunCommand', options);
// run @angular-devkit/build-angular:dev-server with this context now
return {
success: true
};
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果您使用自定义运行命令,那么您将可以访问 .env 文件中声明的所有环境变量,如此处文档中所述。
例子:
"echo": {
"executor": "nx:run-commands",
"options": {
"command": "echo $SOME_ENV_VAR",
}
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5428 次 |
| 最近记录: |