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

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

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

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

Node.js

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

Q&A

解決済

1回答

9216閲覧

node.jsでError: spawn EACCESが発生する

segur

総合スコア73

npm

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

Node.js

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

0グッド

0クリップ

投稿2018/03/26 12:32

編集2018/03/26 12:36

症状

Node.jsのインストールされている環境で以下のコマンドを実行すると、エラーが出ます。

コマンド

node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

エラーメッセージ

internal/child_process.js:323 throw errnoException(err, 'spawn'); ^ Error: spawn EACCES at _errnoException (util.js:1022:11) at ChildProcess.spawn (internal/child_process.js:323:11) at Object.exports.spawn (child_process.js:502:9) at spawn (/var/app/current/node_modules/cross-spawn/index.js:17:18) at crossEnv (/var/app/current/node_modules/cross-env/dist/index.js:32:38) at Object.<anonymous> (/var/app/current/node_modules/cross-env/dist/bin/cross-env.js:6:1) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12)

どなたか解決方法がわかりますでしょうか?

背景

LaravelとVue.jsを利用したWebアプリケーションを作成しており、Laravel Mixを利用するために、cross-envでwebpackをセットアップするという状況です。

環境

  • node: 8.10.0
  • npm: 5.6.0
  • OS: 64bit Amazon Linux 2017.09

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

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

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

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

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

guest

回答1

0

自己解決

申し訳ありません。自己解決しました。

質問外の話なのですが、npmのパッケージインストールコマンドが以下のようになっていました。

# パッケージをインストール npm install --unsafe-perm --no-bin-links

この--no-bin-linksというのが悪さをしていたようで、これを外したところ、うまく行くようになりました。

# 一旦キャッシュ削除 rm -r node_modules npm cache clean --force # パッケージを再インストール npm install --unsafe-perm # JavaScriptコンパイル ==> 成功 node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

--no-bin-linksはパッケージのバイナリのシンボリックリンクを作成しないようにするオプションのようです。ローカル環境でエラーが発生した際に、おまじないのように付けたところ、うまく行ったので、そのままサーバー上でのコマンドにもこのオプションを付けてしまっていたようです。

ちなみに、--unsafe-permはUID/GID切り替えを抑制するオプションのようです。以下のようなエラーを抑止するために入れています。

gyp WARN EACCES user "root" does not have permission to access the ... dir

投稿2018/03/27 08:38

編集2018/03/27 08:39
segur

総合スコア73

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問