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

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

ただいまの
回答率

89.55%

JavaScriptの開発環境について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,650

Hiroooo

score 54

npm update -g npmでアップデートしようとしたらこのようなエラーが発生してしまいました。。

amino-no-MacBook-Pro:MERY-PC aminohiroshi$ npm update -g npm
npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g" "npm"
npm ERR! node v4.4.7
npm ERR! npm  v2.15.8
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall rmdir

npm ERR! Error: EACCES: permission denied, rmdir '/usr/local/lib/node_modules/npm'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, rmdir '/usr/local/lib/node_modules/npm']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'rmdir',
npm ERR!   path: '/usr/local/lib/node_modules/npm' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! error rolling back Error: EACCES: permission denied, rmdir '/usr/local/lib/node_modules/npm'
npm ERR! error rolling back     at Error (native)
npm ERR! error rolling back  { [Error: EACCES: permission denied, rmdir '/usr/local/lib/node_modules/npm']
npm ERR! error rolling back   errno: -13,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   syscall: 'rmdir',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/npm' }

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/aminohiroshi/Documents/MERY-PC/npm-debug.log

rollupインストール後の変化

mery-pc@1.0.0 build /Users/User/Documents/MERY-PC
rollup -c

{ [Error: Cannot find module 'babel-preset-es2015'] code: 'MODULE_NOT_FOUND' }
Error transforming /Users/User/Documents/MERY-PC/src/main.js with 'babel' plugin: Cannot find module 'es2015'
Error: Error transforming /Users/User/Documents/MERY-PC/src/main.js with 'babel' plugin: Cannot find module 'es2015'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.require.resolve (internal/module.js:16:19)
    at module.exports (/Users/User/Documents/MERY-PC/node_modules/babel-preset-es2015-rollup/node_modules/modify-babel-preset/index.js:76:21)
    at Object.<anonymous> (/Users/User/Documents/MERY-PC/node_modules/babel-preset-es2015-rollup/index.js:3:18)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
Type rollup --help for help, or visit https://github.com/rollup/rollup/wiki

パッケージとコマンドライン

MacBook-Pro:mery-pc User$ npm list --depth=0
mery-pc@1.0.0 /Users/User/Documents/MERY-PC
├── babel-preset-es2015-rollup@1.2.0
├── riot@2.6.1
├── rollup-plugin-babel@2.6.1
├── rollup-plugin-commonjs@3.3.1
├── rollup-plugin-json@2.0.1
├── rollup-plugin-node-resolve@2.0.0
└── rollup-plugin-riot@0.4.2

MacBook-Pro:mery-pc User$ npm run build
mery-pc@1.0.0 build /Users/User/Documents/MERY-PC
rollup -c

sh: rollup: command not found

npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
npm ERR! node v4.4.7
npm ERR! npm  v2.15.8
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! mery-pc@1.0.0 build: rollup -c
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the mery-pc@1.0.0 build script 'rollup -c'.
npm ERR! This is most likely a problem with the mery-pc package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     rollup -c
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs mery-pc
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! 
npm ERR!     npm owner ls mery-pc
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/User/Documents/MERY-PC/npm-debug.log

以下の参考ページに従って、rollup.jsの設定を行ったのですが、buildをしようとすると、エラーが生じてしまします。
(単純にrollupをインストール、プラグインの導入、.babelrc作成、rollup.config.jsの作成、package.jsonのscriptに「"build": "rollup -c"」を追加しました。)

参考ページ

他のページを見ても上記参考記事と同じ方法で設定ができると書いているのですが、なぜかできず、その理由がわからないので、原因を教えいただけますでしょうか?
エラー発生時に生じるnpm-debug.logは以下のように出力されています。

その後、以下の英語の記事を参考にしまし、以下のようにrollup.config.jsとpackeage.jsonを変更しましたが、エラーが解決しません。

参考ページ

import json from 'rollup-plugin-json';
import babel from 'rollup-plugin-babel';
import riot from 'rollup-plugin-riot';
import npm from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';

export default {
entry: 'src/main.js',
dest: 'dest/bundle.js',
format: 'umd',
plugins: [
    json(),
    riot(),
    nodeResolve({
        jsnext: true,
        main: true,
        browser: true
    }),
    commonjs(),
    babel()
]}
{
  "name": "mery-pc",
  "version": "1.0.0",
  "description": "",
  "main": "src/main.js",
  "scripts": {
    "build": "rollup -c",
    "test": "test"
  },
  "author": "User",
  "license": "ISC",
  "dependencies": {
    "riot": "^2.6.1"
  },
  "devDependencies": {
    "babel-preset-es2015-rollup": "^1.2.0",
    "rollup-plugin-babel": "^2.6.1",
    "rollup-plugin-commonjs": "^3.3.1",
    "rollup-plugin-json": "^2.0.1",
    "rollup-plugin-node-resolve": "^2.0.0",
    "rollup-plugin-riot": "^0.4.2"
  }
}

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'build' ]
2 info using npm@2.15.8
3 info using node@v4.4.7
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info prebuild mery-pc@1.0.0
6 info build mery-pc@1.0.0
7 verbose unsafe-perm in lifecycle true
8 info mery-pc@1.0.0 Failed to exec build script
9 verbose stack Error: mery-pc@1.0.0 build: rollup -c
9 verbose stack spawn ENOENT
9 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:17:16)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at ChildProcess.emit (events.js:172:7)
9 verbose stack     at maybeClose (internal/child_process.js:827:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
10 verbose pkgid mery-pc@1.0.0
11 verbose cwd /Users/user/Documents/MERY-PC
12 error Darwin 14.5.0
13 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
14 error node v4.4.7
15 error npm  v2.15.8
16 error file sh
17 error code ELIFECYCLE
18 error errno ENOENT
19 error syscall spawn
20 error mery-pc@1.0.0 build: rollup -c
20 error spawn ENOENT
21 error Failed at the mery-pc@1.0.0 build script 'rollup -c'.
21 error This is most likely a problem with the mery-pc package,
21 error not with npm itself.
21 error Tell the author that this fails on your system:
21 error     rollup -c
21 error You can get information on how to open an issue for this project with:
21 error     npm bugs mery-pc
21 error Or if that isn't available, you can get their info via:
21 error
21 error     npm owner ls mery-pc
21 error There is likely additional logging output above.
22 verbose exit [ 1, true ]

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

まず参考ページに示されているrollup.config.jsにはタイプミスがあります。本来destであるべきところがdistになっています。

また、rollup-plugin-npmは非推奨になりました。現在はrollup-plugin-node-resolveを利用してください。

なので、

$ npm i -D rollup-plugin-node-resolve

としてrollup-plugin-node-resolveをインストールしたあとに、rollup.config.jsを次のように書き変えてみてください。

import nodeResolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs'
import babel from 'rollup-plugin-babel'

export default {
  entry: 'src/main.js',
  dest: 'dist/bundle.js',
  plugins: [
    nodeResolve({ jsnext: true }),
    commonjs(),
    babel()
  ]
}

これでnpm run builddist/bundle.jsが生成されるはずです。(当然ですがsrc/main.jsが無いとエラーになります)

Webに限りませんが、技術というのは流行り廃れが早い分野です。なので、仮に今年書かれた記事であってもそれが古い、ということはよくあります。
何か行き詰まったらそのブログ記事だけでなく一次ソース(パッケージの配布サイトなど)を調べるようにしてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/28 16:48 編集

    Homebrewは入っていますか? 入っているならbrew reinstall nodeとしてnode.jsを再インストールしてみてはどうでしょうか

    node.jsを再インストールすればnpmも再インストールされるはずです

    キャンセル

  • 2016/08/28 17:13

    Homebrewは以前入れていたはずなんですでけど、確認したら入っていなそうで、ちょっといろいろ壊れてしまっているようです。
    Homebrewを入れ直して、brew reinstall nodeをやってみます。
    大変申し訳無いのですが、うまくいかなければまたこちらでご連絡させてください。

    キャンセル

  • 2016/08/30 19:33

    いろいろ調べたりバタバタしていてご報告が遅れてしまい申し訳ございません。
    こちらの件、nodeを複数の方法でインストール、アンインストールをしたことで、正常に動かなくなってしまっていたようでした。

    一旦Homebrewから綺麗に入れ直し、0から始めることで正常に動かすことができるようになりました。
    ただ、0からやってもsymlinkがうまくできないというようなエラーは出続けたのですが、下記コマンドを実行することで解決できました。

    sudo chown -R `whoami`:admin /usr/local/bin
    sudo chown -R `whoami`:admin /usr/local/share

    参考サイト
    http://stackoverflow.com/questions/31691626/cant-brew-install-node

    MakeNowJust さん
    本当にご丁寧に相談にのっていただき、ありがとうございました。

    キャンセル

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

  • ただいまの回答率 89.55%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る