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

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

在1.x、 我有这个html:

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

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

推荐答案

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

Prerequisites:

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

Steps for Angular 6.1 (TS 2.9+) till Angular 11

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

当使用这个代码与Angular 12+你可能会得到:Error: Should not import the named export 'version' (imported as 'version') from default-exporting module (only default export is available soon).

Steps for Angular 12+

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

也可以在您的环境中执行步骤2.ts文件,使版本信息可以从那里访问.

感谢您的帮助.

此解决方案不应包括该软件包.生产构建时的json内容——仅版本号(选中8和13).

To be sure please check your generated main.#hash#.js file too!

Typescript相关问答推荐

React组件数组及其props 的类型定义

您可以创建一个类型来表示打字员吗

当使用`type B = A`时,B的类型显示为A.为什么当`type B = A时显示为`any `|用A代替?

如何键入函数以只接受映射到其他一些特定类型的参数类型?

来自类型脚本中可选对象的关联联合类型

在TypeScrip的数组中判断模式类型

匿名静态类推断组成不正确推断

类型脚本返回的类型包含无意义的泛型类型名称

分解对象时出现打字错误

无法将从服务器接收的JSON对象转换为所需的类型,因此可以分析数据

ANGLE订阅要么不更新价值,要么不识别价值变化

TypeScrip-如何自动推断UNION变量的类型

为什么在这种情况下,打字脚本泛型无法正确自动完成?

如何使用警告实现`RecursiveReadonly<;T>;`,如果`T`是原语,则返回`T`而不是`RecursiveReadonly<;T>;`

替换typescript错误;X类型的表达式可以';t用于索引类型Y;带有未定义

类型分布在第一个泛型上,但不分布在第二个泛型上

如何为字符串模板文字创建类型保护

类型string不可分配给类型string| 联盟| 的'

从函数参数推断函数返回类型

使用泛型时记录无法建立索引