2017-08-31 17 views
4

编辑:如果有其他人遇到此问题:应用程序是使用create-react-app创建的,该应用程序限制导入到src文件夹内。但是,如果你使用upgrade react-scripts to v1.0.11,它可以让你访问package.json。在React Redux中从package.json获取版本号

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

我已经试过these suggestions,但没有人工作,因为我无法从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

Module not found: You attempted to import ./../../package.json which falls outside of the project src/ directory. Relative imports outside of src/ are not supported. You can either move it inside src/, or add a symlink to it from project's node_modules/.

+0

你也试过es6版吗? – kenfire

+0

“我无法从src文件夹外部访问package.json” - 您能解释一下吗?如果可以访问'package.json',则可以轻松检索版本号。 – shaochuancs

+0

@kenfire你是什么意思?我对ES6不是很熟悉。 – Baldeep

回答

2

从您的编辑我会建议尝试

import packageJson from '/package.json'; 

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

ln -s /path/to/file /path/to/symlink 

也来看看这个问题: The create-react-app imports restriction outside of src directory

+0

虽然导入仍然无效,但我没有意识到该应用是使用create-react-app创建的,问题来自哪里。所以我想,解决方案就是看看webpack并自己配置它并摆脱这种限制。 – Baldeep

+0

很高兴帮助 – kenfire

5

尝试这个。

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

// in index.js 
import packageJson from '../package.json'; 
console.log(packageJson.version); // "1.0.0" 
+0

我编辑了我的问题来解释为什么没有工作。 – Baldeep

+0

使用世博会,这对我来说就像一个魅力。我叫我的appJson,所以它是'console.log(appJson.expo.version);'。谢谢! – MC10

相关问题