🤠
ルートのpackage.jsonから、yarnで作業ディレクトリを指定してscriptを実行する方法
例えばbackendとfrontendという2つのディレクトリが存在するディレクトリ内で、ディレクトリを移動することなくscriptsを実行するには・・・について調べたメモです。
Project Directory
backend
frontend
packages.json <== ここからフロントエンドとバックエンドのscriptsを実行したい...
npm --prefix
👇はフロントエンド側でReactのnpm start
を実行する想定
npm start --prefix frontend
frontend
の部分を指定のディレクトリ名に書き換える。
Yarn --cwd
👇はフロントエンド側でReactのyarn start
を実行する想定
yarn --cwd frontend start
frontend
の部分を指定のディレクトリ名に書き換える。
npm start --prefix
と順番が異なる点が要注意!
(番外)複数のscriptsを同時に実行する
💡concurrentlyを使用する
yarn add -D concurrently
concurrentが意味する通り、同時に複数のscriptを実行します。
packages.json
"scripts": {
"start": "node backend/server",
"server": "nodemon backend/server",
"client": "yarn --cwd frontend start",
"dev": "concurrently \"yarn server\" \"yarn client\""
},
さらに番外TypeScript編
tsconfig.json
内でoutDir
をdist
に指定しておく
packages.json
"scripts": {
"build": "yarn tsc",
"start": "node dist/index.js",
"dev": "concurrently \"yarn tsc --watch\" \"yarn nodemon -q dist/index.js\""
}
Discussion