質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

2099閲覧

nodebrew_グローバルのnode_modules削除について

sasayaka_p

総合スコア20

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/04/10 07:47

現在Reactを勉強している者です。

■現在の状況
・グローバルのnode_modules(中身はyarn,jest,webpackとかあります)を削除しますと
・ローカルのpackage.json(同様に中身はyarn,jest,webpackとかあります)をインストールしても
yarn等は存在しないとエラーがでて使用できない状況です。

■エラーメッセージ①

.nodebrew/current/bin/yarn: No such file or directory

■エラーメッセージ②

/bin/sh: jest: command not found

ローカルのpackage.json

packagejson

1{ 2 "name": "expensify", 3 "version": "1.0.0", 4 "main": "index.js", 5 "license": "MIT", 6 "scripts": { 7 "build:dev": "webpack", 8 "build:prod": "webpack -p --env production", 9 "dev-server": "webpack-dev-server", 10 "test": "jest --config=jest.config.json", 11 "start": "node server/server.js", 12 "heroku-postbuild": "yarn run build:prod" 13 }, 14 "dependencies": { 15 "@babel/cli": "^7.8.4", 16 "@babel/core": "^7.9.0", 17 "@babel/plugin-proposal-class-properties": "^7.8.3", 18 "@babel/plugin-proposal-object-rest-spread": "^7.9.5", 19 "@babel/plugin-transform-modules-commonjs": "^7.9.0", 20 "@babel/preset-env": "^7.9.5", 21 "@babel/preset-react": "^7.9.4", 22 "babel-core": "^7.0.0-bridge.0", 23 "babel-jest": "^25.3.0", 24 "babel-loader": "^8.1.0", 25 "build": "^0.1.4", 26 "css-loader": "3.5.1", 27 "dev-server": "^0.1.0", 28 "express": "^4.17.1", 29 "extract-text-webpack-plugin": "4.0.0-beta.0", 30 "moment": "2.24.0", 31 "node-sass": "^4.13.1", 32 "normalize.css": "^8.0.1", 33 "numeral": "^2.0.6", 34 "react": "16.13.1", 35 "react-addons-shallow-compare": "15.6.2", 36 "react-dates": "21.8.0", 37 "react-dom": "16.13.1", 38 "react-modal": "3.11.2", 39 "react-redux": "7.2.0", 40 "react-router-dom": "^5.1.2", 41 "redux": "^4.0.5", 42 "sass-loader": "^8.0.2", 43 "style-loader": "1.1.3", 44 "uuid": "3.1.0", 45 "validator": "13.0.0", 46 "webpack": "^4.42.1", 47 "webpack-cli": "^3.3.11" 48 }, 49 "devDependencies": { 50 "enzyme": "^3.11.0", 51 "enzyme-adapter-react-16": "^1.15.2", 52 "enzyme-to-json": "^3.4.4", 53 "jest": "^25.3.0", 54 "raf": "^3.4.1", 55 "react-test-renderer": "16.13.1", 56 "webpack-dev-server": "^3.10.3" 57 } 58} 59

■疑問
(1)エラーメッセージ①より、yarnはグローバルインストールしないと使用できないのですか?

(2)エラーメッセージ②より、なぜローカルのpackage.jsonにjsetがありインストールしnode_modulesに存在しているのに、グローバルのjsetを消すと使用できないのでしょうか?
使用できないならこのjestの記載は必要ジャないのでは?と思いました、、、
ここが今一番引っかかっていることで整理ができません。

nodebrewについていろいろ調べましたがヒントになる情報も得られなかったので、今回質問させていただきました。
どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(1)
yarn をローカルにインストールすると、node_modules を消して yarn し直すことができないからです。
(わざわざ消すことはあまりないと思いますが、git clone 直後などに困ります。)

(2)
jest は node_modules/.bin/jest にあり、普通はパスが通ってないので jest と打っても起動できませんが、npx jest や yarn test すれば使えるので、jest をグローバルインストールする必要はないと思います。

(npx は ~/node_modules/.bin にあるものを起動するためのコマンドです。また、yarn build や yarn test などで package.json の scripts を動かす時も ~/node_modules/.bin にあるものはそのまま起動できます。webpack なども ~/node_modules/.bin にあるものが起動されているはず。)

一般論として、npm install -g すべきなのは yarn や create-react-app など、node_modules が存在しない状態で動かしたいものだけで十分だと思います。

(また、これは議論の余地があるとは思いますが、個人的にはフロントエンドの開発では nodebrew や nvm などを使って node のバージョンを管理する必要はもうないと思っていて、apt や brew などで node と yarn の最新版を入れれば十分な気がしています。)

投稿2020/04/10 08:28

編集2020/04/10 08:37
hoshi-takanori

総合スコア7901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sasayaka_p

2020/04/11 02:31

ありがとうございます とてもわかりやすくて理解できました! 少しモヤモヤしていた箇所がすっきりしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問