OP 编辑:如果其他人遇到此问题:该应用程序是使用创建的创建反应应用程序 https://github.com/facebookincubator/create-react-app,这限制导入到 src 文件夹内。但是如果你将react-scripts升级到v1.0.11 https://github.com/facebookincubator/create-react-app/issues/2466它确实允许您访问 package.json。
我正在尝试从应用程序中的 package.json 获取版本号。
我已经尝试过了这些建议 https://stackoverflow.com/questions/9153571/is-there-a-way-to-get-version-from-package-json-in-nodejs-code,但它们都不起作用,因为我无法从 src 文件夹外部访问 package.json (可能是由于 React,我对此很陌生)。将 package.json 移动到 src 意味着我无法运行npm install
, npm version minor
, and npm 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
找不到模块:您尝试导入
./../../package.json 位于项目 src/ 之外
目录。不支持 src/ 之外的相对导入。你可以
将其移至 src/ 内,或从项目的目录中添加符号链接
节点模块/。
无需导入和公开即可解决此问题package.json
to the create-react-app
要求:版本 1.1.0+ https://github.com/facebook/create-react-app/pull/3387创建反应应用程序
.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}`)
Note:版本(以及许多其他npm 配置参数 https://gist.github.com/moos/4635bda5b04dc8113d8ea7ee974cabc2)可以访问
Note 2:更改为.env
只有在您之后才会选择文件重启开发服务器 https://create-react-app.dev/docs/adding-custom-environment-variables/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)