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

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

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

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

Node.js

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

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

Q&A

解決済

2回答

7632閲覧

node-sassをインストールしようとすると、アクセス拒否となるのはなぜでしょうか

eri_3100

総合スコア31

npm

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

Node.js

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

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

0グッド

0クリップ

投稿2019/01/26 08:03

node-sassをインストールしたいのですが、エラーでどうしてもインストールが進みません。
最初はnpmもダウンロードされず、
https://teratail.com/questions/170930
上記にて質問をしており、無事に解決しました。

その後無事にnode.js、npm共々ダウンロードできましたが、肝心のnode-sassのインストールでまたエラーとなりました。
なんとなくですが、アクセス権限が無いですという文面なのかなと思うのですが、実際はどのようなエラーとなっているのか、大変恐縮ですがご回答を頂けますと助かります。
何卒よろしくお願いいたします。


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

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

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

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

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

guest

回答2

0

ベストアンサー

前者のエラーはnode-sassをインストールする為に、
ディレクトリを作る所で権限不足で失敗していると言ってますね。
sudo使ってるので公式のNode.jsのサイトからインストーラーを落とすのはやめたほうがいいかもしれません。


後者のエラーはnode-gypですね
Node.jsのネイティブ拡張を作ってみよう 〜NAN, 非同期処理, npm公開まで〜 - Qiita

ざっくり説明するとNode.jsを始めとするスクリプト言語はコンパイラ言語と比べて実行速度が遅いという弱点があります。
なのでC言語やGolang等と比べるとNode.js等のスクリプトは単純な計算では1/20程度の速度に落ち込みます。

それの対抗策として、PHP、Ruby、Python、Node.jsといった言語には
C言語などで書かれた高速なプログラムに助けを求める機能が備わっています。
Node.jsではnode-gypです。

node-gypを使う為に必要なのは下記

  • Python 2.7 (3系はアウトらしい)
  • make (コマンドの羅列だが、ただのシェルスクリプトと違ってC言語の開発補佐の側面が強い)
  • gcc (C言語を実際にコンパイルライブラリ)

上のPythonはMacならば最初から2.7系が入っていると思うので、
Python学習中等で殺して3系に差し替えたりしてなければ大丈夫です。

makeとgccはC言語の環境を導入すれば使えるようになります。
MacはXcodeというITエンジニア向け環境構築パックがAppストアで配布されており、
それをインストールすることでC言語をコンパイルする環境が整います。

投稿2019/01/26 08:52

miyabi-sun

総合スコア21158

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

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

eri_3100

2019/01/26 09:33

回答ありがとうございます。 ということは、後者はxcodeをインストールして環境をつくれば解決するのでしょうか? 前者が勉強不足で申し訳ないのですが、よくわからず、質問させてください。 >ディレクトリを作る所で権限不足で失敗していると言ってますね。 mkdirの部分ですよね。こちら一度調べてみます。 >sudo使ってるので公式のNode.jsのサイトからインストーラーを落とすのはやめたほうがいいかもしれません。 こちらはどういった意味でしょうか? 今Macに入っているnode.jsをアンインストールして、公式ではないところから引っ張ってくるということですか?
miyabi-sun

2019/02/01 06:34 編集

ここはちょっと言葉足らずでしたね。 【sudo「つかってこれ」なので】という意味です。 sudoはルートの権限を使うという意味があるので、 普通権限エラーで弾かれるというのはありえないことです。 ただし、MacOSはEl Capitanあたりから「/usr」あたりのディレクトリはルートを含むユーザが勝手に書き換えるのを禁止みたいなアップデートを施し、世界中が大混乱に陥ったという話があります。 /usr/local配下なので本来大丈夫であるべきなのですが、 その辺の事情から全てのユーザーにインストールする公式パッケージではなく、Nodebrewなんかを使った方が安全ではないかなと思います。 OSのクリーンインストールも視野にいれたほうがいいかも… https://apple.srad.jp/story/15/09/30/1529213/
guest

0

エラーメッセージの画像の8行目(空白行も含む)のUnable to 〜〜〜の行に注目してみて下さい。
後半部分にError: EACCES: permission denied 〜〜〜の記述があると思います。

これはnpm側でディレクトリ操作(今回の場合はnode_modulsディレクトリの中にnode-sassのディレクトリを作成するという操作だと思う)の際に権限が無くて失敗してしまっているという状態になります。

なので、権限を変更してあげれば大丈夫だと思います。

参考記事:https://web-guided.com/post-260

投稿2019/01/27 11:11

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問