从 React Redux 中的 package.json 获取版本号(create-react-app)

新手上路,请多包涵

OP 编辑:如果其他人遇到此问题:该应用程序是使用 create-react-app 创建的,这将导入限制在 src 文件夹内。但是,如果您 将 react-scripts 升级到 v1.0.11 ,它确实可以让您访问 package.json。

我正在尝试从我的应用程序中的 package.json 获取版本号。

我已经尝试过 这些建议,但没有一个有效,因为我无法从 src 文件夹外部访问 package.json(可能是由于 React,我是新手)。将 package.json 移动到 src 然后意味着我无法从我的根文件夹运行 npm installnpm version minornpm run build 。我试过使用 process.env.npm_package_version 但这会导致未定义。

我正在使用 Jenkins,我还没有设置它来推送提交,但我唯一的想法是从 GitLab 中的标签中获取版本,但我不知道该怎么做,它会给回购添加不必要的依赖,所以我真的很想找到一个替代方案。

编辑:我的文件结构是这样的:

 --> RootAppFolder
    |--> build
    |--> node_modules
    |--> public
    |--> src
         |--> Components
              |--> Root.js
    |
    |--> package.json

所以要从 Root.js 访问 package.json 我必须做 import packageJson from './../../package.json' 然后我得到以下错误:

./src/components/Root.js

未找到模块:您尝试导入位于项目 src/ 目录之外的 ./../../package.json。不支持 src/ 之外的相对导入。你可以将它移到 src/ 中,或者从项目的 node_modules/ 中添加一个符号链接。

原文由 Baldeep 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

根据您的编辑,我建议尝试:

 import packageJson from '/package.json';

您也可以尝试创建符号链接:

 # From the project root.
cd src; ln -s ../package.json package.alias.json

列出 src 目录的内容,您将看到符号链接。

 ls
#=> package.alias.json -> ../package.json

添加 .alias 有助于减少他人和未来自己的“魔力”。另外,它将帮助文本编辑器将它们分开。你以后会感谢我的。只需确保更新您的 JS 代码以从 ./package.alias.json 而不是 ./package.json 导入。

另外,请看一下这个问题: src 目录之外的 create-react-app 导入限制

原文由 kenfire 发布,翻译遵循 CC BY-SA 4.0 许可协议

在不导入和暴露 package.jsoncreate-react-app 的情况下解决这个问题

要求:create-react-app 版本 1.1.0+

.env

 REACT_APP_VERSION=$npm_package_version
REACT_APP_NAME=$npm_package_name

index.js

 console.log(`${process.env.REACT_APP_NAME} ${process.env.REACT_APP_VERSION}`)

注意: 可以访问版本(以及许多其他 npm 配置参数

注意 2:.env 文件的更改只有在您 重新启动开发服务器 后才会被选中

原文由 talves 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题