How to securely import version from package.json while respecting Error: Should not import the named export 'version'?

How to securely import version from package.json while respecting Error: Should not import the named export 'version'?

更新到 Webpack 5 后,出现此错误:

Should not import the named export 'version' (imported as 'version') from default-exporting module (only default export is available soon)

超级简单的代码示例:

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

export const appVersion = version;

给出了 import * as packageInfo from '../../package.json'; version: packageInfo.version, 的解决方案,但是这会导入所有 package.json,作为答复说明中的一些评论,可以将其视为安全风险。

我只需要版本号;如果我必须导入整个 package.json 并可能将其公开给我的用户,最好引入代码重复并只创建和维护两个单独的变量:

  1. package.json
  2. 中的版本
  3. 我的 js 应用程序中的版本

但是,我猜想有一种安全的方法可以导入 package.json 而不会让 Webpack 5 抱怨,我只是不知道。有这样的方法吗?

在不导入和公开 package.json 到应用程序的情况下解决这个问题

  • 通过从 npm 安全变量 ($npm_package_version) 获取变量而不是将整个 package.json 文件作为对象列表导入。

.env

VUE_APP_VERSION=$npm_package_version

app.vue

 data() {
    return {
      projectVersion: process.env.VUE_APP_VERSION
}
  • 正在从 env 中获取数据并在前端显示为计算变量

注意:更改服务器配置需要重新启动服务器或重新部署

  • 步骤 1 - npm 版本 minor/major/patch -> 在 packages.json

    中自动更新
       (Please follow semantic versioning & use commands individually.)
    
  • 步骤 2 - 自动部署和更新版本