2017-08-31 16 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 minor、およびnpm run buildを実行できないことを意味します。私はprocess.env.npm_package_versionを使ってみましたが、結果は未定義です。

私はJenkinsを使用していますが、まだコミットをプッシュするように設定していませんが、私が持っている唯一のアイデアはGitLabのタグからバージョンを取得することですが、それはレポに不要な依存関係を追加するので、私は本当に別のものを探したいと思っています。

EDIT: 私のファイル構造が似ている:

--> 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

関連する問題