当前位置: 首页 > 知识库问答 >
问题:

从包中获取版本号。React Redux中的json(创建React应用程序)

舒宏富
2023-03-14

OP EDIT:如果其他人遇到此问题:该应用程序是使用create react app创建的,该应用程序将导入限制在src文件夹内。但是,如果将react脚本升级到v1。0.11它确实允许您访问包。json。

我正试图从软件包中获取版本号。我的应用程序中的json。

我已经尝试过这些建议,但没有一个有效,因为我无法访问该软件包。来自src文件夹之外的json(可能是由于React,我不熟悉这个)。移动包裹。json进入src意味着我不能从我的根文件夹运行npm安装npm版本次要,和npm运行html" target="_blank">构建。我试过使用进程。环境。npm_包_版本,但这会导致未定义。

我使用的是Jenkins,我还没有设置它来推动提交,但我唯一的想法是从GitLab中的标签获取版本,但我不知道如何做到这一点,这会给repo增加不必要的依赖性,所以我真的想找到一个替代方案。

编辑:我的文件结构如下:

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

所以要从Root.js访问package.json,我必须从'导入包Json。/.../.../package.json'然后我得到以下错误:

./src/components/Root。js

未找到模块:您试图导入。//包裹位于项目src/目录之外的json。不支持src/之外的相对导入。您可以将其移动到src/内部,也可以从项目的节点\ u modules/向其添加符号链接。

共有3个答案

归星驰
2023-03-14

试试这个。

// in package.json
"version": "1.0.0"

// in index.js
import packageJson from '../package.json';
console.log(packageJson.version); // "1.0.0"
包兴思
2023-03-14

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

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代码以从导入即可/包裹别名json而不是/包裹json

另外,请看一看这个问题:create-react-app-imports限制在src目录之外

胡元忠
2023-03-14

解决这个问题,而不导入和公开package.jsoncreate-react-app

需要:版本1.1。创建react应用程序的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文件

 类似资料:
  • 这是我的第一个反应应用程序。我正在开发windows 10,节点版本10.15.3,npm版本6.4.1。当我执行create-react-app命令时: 在这之后,它就卡住了,我等了将近20分钟,但什么也没发生,没有显示成功消息或关于命令的信息,比如npm启动,我必须执行ctrl c来终止批处理作业。创建的项目文件夹只包含package.json、package-lock.json和node_m

  • 我正在使用JDK附带的Oracle工具为JavaFX8应用程序创建一个可安装的包。在Mac上创建文件,在Linux上使用文件。我从Gradle调用一个Ant脚本来创建包。我遇到的问题是,包中包含的版本号总是1.0,而不是我指定的版本。Ant脚本的相关部分如下: 您可以在这里的上下文中看到完整的脚本。 在Mac上,右键单击应用程序图标并选择“Get Info”显示1.0而不是正确的版本号,正如您在下

  • 会导致以下依赖项错误: npx版本:8.5.0 该命令仍会生成一个项目目录,但在创建的目录中运行,并且

  • 我已经在谷歌云功能中构建了API。当我试图直接获取API时,会出现CORS错误。虽然我添加了,但失败了。 来自“http://localhost:3000”的“https://xxxxxxxx.com”已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上没有“access-control-allog-origin”标头。如果一个不透明的响应满足您的需要,请将请求的模式设置为“n

  • 函数名称: 获取应用版本 函数功能: 根据应用包名获取应用版本号 函数方法 versionName = app.getVer(bid) 参数 类型 必填 说明 bid string 是 应用包名 返回值 类型 说明 versionName string 应用版本号 函数用例 bid = app.getPackageName("积木编程") versionName = app.getVer(bid

  • 我把我的应用放到Google Play,现在我做一些事情,比如添加新功能,新UI等,然后重新上传应用到Google Play。 所以我想,当用户启动应用程序时,如果有新的更新,显示一个对话框提醒用户,允许他们更新最新版本。 谷歌似乎没有提供任何API来获得应用版本,那么有什么解决方案可以做吗?