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
并可能将其公开给我的用户,最好引入代码重复并只创建和维护两个单独的变量:
package.json
中的版本
- 我的 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 - 自动部署和更新版本
更新到 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
并可能将其公开给我的用户,最好引入代码重复并只创建和维护两个单独的变量:
package.json
中的版本
- 我的 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 - 自动部署和更新版本