OP EDIT:他の誰かがこれに遭遇した場合:アプリは create-react-app を使用して作成され、srcフォルダー内へのインポートを制限します。ただし react-scriptsをv1.0.11にアップグレードする の場合、package.jsonにアクセスできます。
アプリでpackage.jsonからバージョン番号を取得しようとしています。
私はすでに これらの提案 を試しましたが、srcフォルダーの外部からpackage.jsonにアクセスできないため、それらのいずれも機能していません(Reactのせいかもしれませんが、これは初めてです)。 package.jsonをsrcに移動すると、npm install
、npm version minor
、およびnpm run build
をルートフォルダーから実行できなくなります。 process.env.npm_package_version
を使用しようとしましたが、未定義になります。
私はジェンキンスを使用していますが、まだコミットをプッシュするように設定していませんが、私が持っている唯一のアイデアは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 /からシンボリックリンクを追加できます。
あなたの編集から、試してみることをお勧めします
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
を追加すると、他の人やこれを見たときの自分自身の魔法を減らすのに役立ちます。さらに、テキストエディターがそれらを区別するのに役立ちます。後で感謝します。必ず./package.alias.json
ではなく./package.json
からインポートするようにJSコードを更新してください。
次の質問もご覧ください。 create-react-appは、srcディレクトリの外部に制限をインポートします
インポートせずにこれを解決し、package.json
をcreate-react-app
に公開します
要件: バージョン1.1.0 + create-react-app
.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 config params )はアクセスされる
これを試して。
// in package.json
"version": "1.0.0"
// in index.js
import packageJson from '../package.json';
console.log(packageJson.version); // "1.0.0"