最近、vue やら React を始めましたが、なぜこんなことばかりしているかというと、自分のホームページがあまりにも古臭く、また最近は新しいページも増やしていませんが、もし増やすとすれば、コピー・ペーストではあるものの何だか効率の悪い方法だなと以前から感じており、何とかならないかと感じていたからです。
それと、Laravel を導入する際に react も考えたのですが、やってみて余りにも難しくて挫折した経験があり、やはり何とかしたいと以前から感じていたためです。
最近では、React から gatsby を使ってホームページを作成するのが流行ということでやってみようと思い立ちました。
このサイトを参考させて頂きました。
環境
linux mint 21.3
node : v20.11.0
yarn のインストール
yarn というのは node のパッケージマネージャで、npmよりも高速で信頼度の高いものになっているとのことなので yarn をインストールします。
npm install --global yarn
以下のようなエラーが。
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/yarn
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/yarn'
npm ERR! [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/yarn'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/usr/local/lib/node_modules/yarn'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in: /home/mituo/.npm/_logs/2024-02-18T00_18_36_741Z-debug-0.log
例によって chatGPT に訊いてみると、sudo は推奨されないとのこと。
chatGPT の言われるままに、
sudo npm install --global yarn
npm config set prefix ~/.npm
npm install --global yarn
yarn --version
1.22.21
creat-react-appのインストールとプロジェクト作成
creat-react-app をインストールすれば、パッケージのインストールが簡単に素早くできるようです。
yarn global add create-react-app
プロジェクトを作成します。
yarn create react-app helloworld
~/ に 172.6 MB の大きな helloworld フォルダが作成されます。
起動します。
cd ~/helloworld
yarn start

Hello World
~/helloworld/src/App.js の編集。
import React from 'react';
const App = () => {
return (
<div>
<h1>Hello World</h1>
</div>
);
}
export default App;
vue と react では vue の方が学習コストが低いとのことで vue を始めたのですが、ホームページを gatsby で作るには react が必要らしいので、react を少し勉強してみます。