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

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

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

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

Node.js

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

JavaScript

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

React.js

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

Q&A

解決済

1回答

7518閲覧

Mac:npm run devを実行するとエラーになる

donut4

総合スコア148

npm

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

Node.js

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

JavaScript

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

React.js

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

0グッド

0クリップ

投稿2020/06/15 05:58

編集2020/06/15 09:14

MacにNode.jsをインストールしてましたがnpm run devで以下のエラーが出てしまいました。
※Homebrewを用いてます

#事象
npm run devすると

npm ERR! code ENOENT npm ERR! syscall open npm ERR! path /Users/tom/package.json npm ERR! errno -2 npm ERR! enoent ENOENT: no such file or directory, open '/Users/tom/package.json' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: npm ERR! /Users/tom/.npm/_logs/2020-06-15T05_40_09_174Z-debug.log

#試したこと
・brew install nodebrewでnodebrewインストール。()
・nodebrew install-binary stableでnode.jsのインストール

バージョン確認コマンドでちゃんとインストールできてるか確認。

////nodebrewの確認

$ nodebrew -v nodebrew 1.0.1 Usage: nodebrew help Show this message nodebrew install <version> Download and install <version> (from binary) nodebrew compile <version> Download and install <version> (from source) nodebrew install-binary <version> Alias of `install` (For backward compatibility) nodebrew uninstall <version> Uninstall <version> nodebrew use <version> Use <version> nodebrew list List installed versions nodebrew ls Alias for `list` nodebrew ls-remote List remote versions nodebrew ls-all List remote and installed versions nodebrew alias <key> <value> Set alias nodebrew unalias <key> Remove alias nodebrew clean <version> | all Remove source file nodebrew selfupdate Update nodebrew nodebrew migrate-package <version> Install global NPM packages contained in <version> to current version nodebrew exec <version> -- <command> Execute <command> using specified <version> Example: # install nodebrew install v8.9.4 # use a specific version number nodebrew use v8.9.4

////node.jsの確認

$ node -v v14.4.0 $ nodebrew ls v14.4.0 current: v14.4.0

////パスも通っている

$ npm Usage: npm <command> where <command> is one of: access, adduser, audit, bin, bugs, c, cache, ci, cit, clean-install, clean-install-test, completion, config, create, ddp, dedupe, deprecate, dist-tag, docs, doctor, edit, explore, fund, get, help, help-search, hook, i, init, install, install-ci-test, install-test, it, link, list, ln, login, logout, ls, org, outdated, owner, pack, ping, prefix, profile, prune, publish, rb, rebuild, repo, restart, root, run, run-script, s, se, search, set, shrinkwrap, star, stars, start, stop, t, team, test, token, tst, un, uninstall, unpublish, unstar, up, update, v, version, view, whoami npm <command> -h quick help on <command> npm -l display full usage info npm help <term> search for help on <term> npm help npm involved overview Specify configs in the ini-formatted file: /Users/tom/.npmrc or on the command line via: npm <command> --key value Config info can be viewed via: npm help config npm@6.14.5 /Users/tom/.nodebrew/node/v14.4.0/lib/node_modules/npm

お詳しい方がいましたらよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

この行が原因です。

npm ERR! enoent ENOENT: no such file or directory, open '/Users/tom/package.json' npm ERR! enoent This is related to npm not being able to find a file.

解説していきます。


Node.jsはプロジェクトルートにpackage.jsonというJSON形式のファイルを設置し、
これにプロジェクトの概要を書き込んでいきます。

Node.jsにおまけでひっついてくる管理ツールのnpmは
このpackage.jsonを読み書きしながらプロジェクトの状態を管理します。

このプロジェクトが何のライブラリを採用しているかとか、
デプロイ方法は?CIは?テストは?
全てこのファイルに書いてあります。

本件のnpm run devも同様で、これはnpm-scriptsと呼ばれる
プロジェクトで使うコード類をpackage.jsonに書き写したものを実行しているだけです。
package.jsonを開いてこんな風にscriptsキーの配下に、devキーが存在し、文字列としてコマンドが記述されているはずです。

{ "scripts": { "dev": "何かしらのコマンド" } }

参考記事: Node.jsユーザーなら押さえておきたい npm-scriptsのタスク実行方法まとめ


冒頭に戻りましょう。

npm ERR! enoent ENOENT: no such file or directory, open '/Users/tom/package.json' npm ERR! enoent This is related to npm not being able to find a file.

エラーを読めば一目瞭然ですね。
package.jsonファイルが存在しないよと言っているわけです。
先程紹介したように、npm run devpackage.jsonファイルのscripts.devの文字列をコマンドとして実行するわけですから、そもそもpackage.jsonファイルが無ければ動作しません。

MacにNode.jsをインストールしてましたがnpm run devで以下のエラーが出てしまいました。

この状態ですから、まだプロジェクトもソースコードもなにもないんだと思います。
もし作るならnpm init --yesコマンドを実行すると、
ワーキングディレクトリに適当に値を格納したシンプルなpackage.jsonファイルを生成してくれます。

もし他の方が作ったプロジェクトならば、
必ずプロジェクトルートのディレクトリにpackage.jsonファイルが存在しているはずなので、
そのプロジェクトをどうやって導入すれば良いのか先輩に相談してみてください。


【追記】

何を作るのかにもよりますが、
まずはプロジェクトにしようと思うフォルダを作って決めてください。
そのフォルダにcdコマンドで移動してからnpm init --yesを実行してpackage.jsonを設置することで
「これはNode.jsで作ったプロジェクトですよ」という明示になります。

適当な場所にプロジェクトを作ると後で混乱するので、
一般的なエンジニアの慣習に従って進めていきましょう
#: コメント
$: 打ち込むコマンド

bash

1# cdコマンドのみを実行して~に移動する 2$ cd 3 4# projectsフォルダを作成して移動 5$ mkdir projects 6$ cd projects 7 8# 更にhello-worldフォルダを作成して移動 9$ mkdir hello-world 10$ cd hello-world 11 12# package.jsonファイルを作成 13$ npm init --yes 14 15# pwdで現在のパスを表示、vscode等のエディタにコピペしてプロジェクトとして開くと良い 16$ pwd 17/home/[user-name]/projects/hello-world 18 19# npmのサイト(https://www.npmjs.com/)で欲しいパッケージを探してインストール 20# 例として導入するのは日付管理の得意なMoment.js (https://momentjs.com/) 21$ npm install moment

このフォルダにindex.jsというファイルを作ってみます。
先程導入したMoment.jsを使って現在時刻を表示します。

js

1const moment = require("moment"); 2 3const now = moment().format("YYYY-MM-DD hh:mm:ss"); 4console.log(now);

bash

1$ node index.js 22020-06-16 02:29:22

今回の質問はnpm run devを作りたいという質問なので、
package.jsonを編集して終了しましょう。
npm init --yesで作った初期のpackage.jsonには既にscripts.testというキーがあります。
これに追記するようにscripts.devを追加します。

json

1{ 2 "name": "hello-world", 3 "version": "1.0.0", 4 "description": "", 5 "main": "index.js", 6 "scripts": { 7 "dev": "node index.js", 8 "test": "echo \"Error: no test specified\" && exit 1" 9 }, 10 "keywords": [], 11 "author": "", 12 "license": "ISC", 13 "dependencies": { 14 "moment": "^2.26.0" 15 } 16}

これでnpm-scriptsの準備が完了しました。
早速実行してみます。

bash

1$ npm run dev 2 3> hello-world@1.0.0 dev /Users/mohata/projects/hello-world 4> node index.js 5 62020-06-16 02:32:3

こんな感じでnpm-scriptsは単なるコマンドでしかありませんが、
Webサービスを開発環境モードで立ち上げる場合はnpm run devで起動しておくように作るような慣習がありますので、自分でこのようにガリガリ書きまくるということは少ないかもしれません。

プロジェクトのビルドツール等を導入した時には、
package.jsonを見れば書いてあるはずなので、
これを覚えておき、わからない事があればpackage.jsonを一度見るようにしてみてくださいね。

投稿2020/06/15 09:53

編集2020/06/16 05:36
miyabi-sun

総合スコア21158

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

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

donut4

2020/06/15 11:34 編集

ご丁寧にありがとうございます npm init を実行したらpackage.jsonが生成されました。 npm initを実行する場所に決まりはありますか? 以下は.npmや.nodebrewがあるフォルダ(/Users/tom)で実行しました TomMac:~ tom$ npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help init` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (tom) version: (1.0.0) description: entry point: (index.js) test command: git repository: keywords: author: license: (ISC) About to write to /Users/tom/package.json: { "name": "tom", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this OK? (yes) yes TomMac:~ tom$
miyabi-sun

2020/06/16 05:40

簡単なチュートリアルを添えてみました。 でも`npm run dev`をどこで見知ったんだ?という問題が残っています。 `package.json`の作り方なんて本来どうでも良いはずなんです。 きっとどこかの記事でプロジェクトビルダーで作るみたいな紹介がされていて 「ああやってインストールして、`npm run dev`でサーバーが立ち上がります」みたいな端折った紹介がされていたと思うんですよね。 なのでpackage.jsonとnpmの繋がりをチュートリアル的に紹介しておくことで、 きっと1ヶ月後の理解がより深まるんじゃないかなと思って追記部分は書きました。
donut4

2020/06/16 10:07

チュートリアルの紹介ありがとうございます。 早速見てみようと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問