angular - 如何在 Angular 中显示应用程序版本?

标签 angular typescript ionic-framework version package.json

如何在 Angular 应用程序中显示应用程序版本?版本应取自 package.json文件

{
  "name": "angular-app",
  "version": "0.0.1",
  ...
}

在 angular 1.x 中,我有这个 html:

<p><%=version %></p>

在 Angular 中,这不会呈现为版本号,而是按原样打印(<%=version %> 而不是 0.0.1)。

最佳答案

如果您想在 Angular 应用中使用/显示版本号,请执行以下操作:

先决条件:

  • 通过 Angular CLI 创建的 Angular 文件和文件夹结构

Angular 6.1(TS 2.9+)到 Angular 11 的步骤

  1. 在您的 /tsconfig.json 中(有时在 /src/tsconfig.app.json 中也是必需的)启用以下选项(之后需要重新启动 webpack 开发服务器):
    "compilerOptions": {
      ...
      "resolveJsonModule": true,
      ...
  1. 然后在你的组件中,例如 /src/app/app.component.ts 使用这样的版本信息:
    import { version } from '../../package.json';
    ...
    export class AppComponent {
      public version: string = version;
    }

在 Angular 12+ 中使用此代码时,您可能会得到:错误:不应从默认导出模块导入命名导出“版本”(导入为“版本”)(仅默认导出即将可用) 。 在这种情况下,请使用以下代码:

Angular 12+ 的步骤

  1. 在您的 /tsconfig.json 中(有时在 /src/tsconfig.app.json 中也是必需的)启用以下选项(之后需要重新启动 webpack 开发服务器):
    "compilerOptions": {
      ...
      "resolveJsonModule": true,
      "allowSyntheticDefaultImports": true,
      ...
  1. 然后在你的组件中,例如 /src/app/app.component.ts 使用这样的版本信息:
    import packageJson from '../../package.json';
    ...
    export class AppComponent {
      public version: string = packageJson.version;
    }

也可以在您的 environment.ts 文件中执行第 2 步,以便从那里访问版本信息。

感谢 @Ionaru@MarcoRinck 的帮助。

此解决方案在进行生产构建时不应包含 package.json 内容 - 仅包含版本号(使用 Angular 8 和 13 检查)。

请务必检查您生成的 main.#hash#.js 文件!

关于angular - 如何在 Angular 中显示应用程序版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34907682/

相关文章:

android - 当应用程序从前台被杀死时在 Ionic App 中显示通知

ionic-framework - Ionic 2 警报定制

Angular 6 Scroll Listener 重新加载组件

asp.net-mvc - TypeScript 未使用 WE3 和 TS 0.9.1.1 进行编译

node.js - 参数类型 "X"不可分配给参数类型 "Y"

node.js - Ionic 3 - npm i 运行命令失败

javascript - 如何在 Ionic 4 中获取变量中的 div 值

forms - 表单控件未定义

Angular 安全导航运算符、动态属性和括号表示法

javascript - 从 typescript 接口(interface)对象中删除字段