エクスプレス+マングースに基づいたバックエンドがあります。ファイル構造は次のとおりです。
- /models
-- item.js
- /node.modules
-- ...
- server.js
- package-lock.json
- package.json
フロントエンド用の通常のcreate-react-appベースのフォルダー:
- /src
-- /assets
--- index.css
-- /components
--- Somecomponent.js
-- /containers
--- App.js
-- /reducers
--- somereducers.js
- /node.modules
-- ...
-- index.js
-- registerServiceWorker.js
- .gitignore
- package-lock.json
- package.json
一緒に適切に使いたいです。このように整理したかったのです。
- /client
-- /src
...
-- index.js
-- registerServiceWorker.js
- .gitignore
- package-lock.json
- package.json
- /server
- /models
-- item.js
- /node.modules
-- ...
- server.js
- package-lock.json
- package.json
この段階で立ち往生しました。クライアントフォルダーがサーバーフォルダー内にある場合、またはサーバーフォルダーがクライアント内にある場合に作成できます。 1.しかし、2つのフォルダーが兄弟であるときに実行する方法は? 2. package.jsonの内容とnode.modulesの場所(サーバーとクライアントの両方が独自のpackage.jsonとモジュールを持っている必要がありますか?)
最も基本的な構造は、root
およびfrontend
フォルダーを含むbackend
フォルダーを持つことです。 [〜#〜] mern [〜#〜]スタックについて話しているので、内部にpackage.json
があります。あなたのNodeJS
バックエンド環境とReact
の側のpackage.json
バックエンドサーバーとフロントエンドクライアントはまったく別のものであるため、はい、両方とも独自のnode_modulesフォルダーを持っています。バックエンドでは、おそらくNode runtime、Express
のような便利な方法でMongoose
にMongoDB
のようなものをインストールしているでしょう。など、フロントエンドには、フロントエンドフレームワークとしてReact
、状態管理などのためにRedux
があります。さらに、package.jsonファイル内に既にリストされているものに応じて、npm install
separatelyを実行すると、これらの2つのフォルダーにインストールされます。追加のパッケージをインストールする場合は、npm install + "the name of the package"
( '+'と引用符)が必要な特定のフォルダー内(バックエンドまたはフロントエンド)。
これがお役に立てば幸いです。写真、特に2番目の写真をチェックしてください。
フォルダ構造
PDATE:
開発では、2つの追加のものをインストールすることをお勧めします。
npm i nodemon
npm i concurrently
Nodemon
はすべてのファイルの変更を追跡し、concurrently
を使用すると、フロントエンドとバックエンドの両方を同時に起動できます。たとえば、あなたのpackage.json
ファイルに移動してbackendフォルダーに移動し、次のように開始セクションを編集できます。
"scripts": {
"start": "node app.js", // whatever is your backend starting point
"backend": "nodemon app.js", // to start the node development server
"frontend": "npm run start --prefix frontend", // it goes insede of the client folder and starts the React server
"dev": "concurrently \"npm run backend\" \"npm run frontend\"" // with this command you'll be able to start them both at once
}
フォルダー構造を保持し、すべての依存関係(上記の2つを含む)をインストールし、バックエンドのpackage.jsonファイルを変更した場合、簡単なコマンドで両方を開始できます。
npm run dev