如何向使用 Vite 的用户显示 package.json 的当前应用程序版本?

How can I display the current app version from package.json to the user using Vite?

使用 create-react-app 可以使用 process.env.REACT_APP_VERSION

Vite有对应的吗?

如果要使用插件,请参阅

但是自己实现起来非常容易。 您可以在 vite.config.js 中使用 define。了解一下 here

vite.config.js

export default {
    plugins: [vue()],
    define: {
        '__APP_VERSION__': JSON.stringify(process.env.npm_package_version),
    }
}

component.vue

<template>
    <div>{{ version }}</div>
</template>
<script>
export default {
    data () {
        version: __APP_VERSION__
    },
}
</script>

<script setup>

<script setup>
const version = __APP_VERSION__
</script>
<template>
    <div>{{ version }}</div>
</template>

只要不与 javascript 语法或其他变量冲突,您应该可以更改 '__APP_VERSION__'

如果您不想使用 define,可以使用 vite 插件。

https://www.npmjs.com/package/vite-plugin-package-version

// vite.config.js
import loadVersion from 'vite-plugin-package-version';

export default {
  plugins: [loadVersion()],
};

将使用您在 package.json 中指定的版本注入 import.meta.env.PACKAGE_VERSION。

以下答案包括

  1. 导入Vue版本的安全方式。

  2. 使用 npm 命令增加语义版本

对于 React 和 TypeScript 用户:

define 添加到您的 vite.config.ts:

import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [react()],
  define: {
    APP_VERSION: JSON.stringify(process.env.npm_package_version),
  },
});

如果您还没有,请定义一个 vite-env.d.tsenv.d.ts 并添加一个 declare:

declare const APP_VERSION: string;

您现在可以在代码的任何地方使用变量 APP_VERSION & Vite 将在编译时替换它。

注意:您可能需要重新启动 TS 服务器才能让 intellisense 获取声明:

VSCode MacOS: + + P > Restart TS Server

VSCode Windows: ctrl + + P > Restart TS Server

这对我有用:

import { version } from '../../package.json'