Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9229

VagrantにHerokuを入れる際に起きたエラーと解決方法と参考記事

$
0
0

はじめに

ドットインストールで構築したローカル環境でアプリを開発し、公開するため、いざherokuを入れようとしたらエラーが起きまくりました。
【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】
この記事を参考にしていました。
しかし、herokuを入れる際に、この記事の開発環境が全く違うため、その先に進めずエラーと戦うことになりました。

パスがない問題

エラー解決に必死だったため、エラーのコピーは取っていませんが、このようなエラーがでたと思います。

↓エラーの最後の文
Your path is missing /usr/local/bin, you need to add this to use this installer.

/usr/local/binのパスが無いと言われているため、パスを作る必要があるみたいです。

パスの確認

$ echo $PATH

パスを確認してみますが/usr/local/bin:はあっても/usr/local/binがないと駄目みたいです。

解決方法の前に、解決する中で知った知識

sudoとは、僕の解釈では権限の高いコマンド。
$#で違いもあり、#のほうが権限が高い。($の方で実行できないことが#で実行できたから)

解決方法:偉い権限を使ったり、viエディタで書き換えたりする。

パスの設定に必要な.bash_profileの設定とsudoの設定は以下を参考にしました。
仮想環境構築後に設定しておきたいこと -メモ-

sudoの設定はこちらの方が親切です。
CentOS で sudo 時に実行ユーザーのPATHを引き継ぐ

$ sudo visudo

の実行後に、viエディタの操作が必要だったため以下を参考にしました。
viエディタの使い方

パスが通ったと思ったら、シンタックスエラー問題

$ heroku --version

herokuのバージョン確認をすると、以下のエラーが...

/usr/local/lib/heroku/node_modules/@oclif/command/lib/index.js:3
const path = require("path");
^^^^^
SyntaxError: Use of const in strict mode.
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/usr/local/lib/heroku/bin/run:5:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

Node.jsのバージョンが古すぎたみたいです。

$ node -v

確認してみたところv0.10.48でした。

解決方法:キャッシュを消して、新しいバージョンを入れる。

いろいろと試したため、ダイレクトな解決方法にならない場合はすみません。

npmがインストールされていなかったので、インストールしました。ついでにnodeもインストール。
Herokuを入れるためにnpmが必要かどうかはわかりませんが、とりあえずインストールしました。

$ sudo yum install nodejs npm

偉い権限の方に行く。

$ sudo -s

左のやつが$から#に変わる。

インストールするために必要なやつ(正直、よくわかってないですがsetup_11.xの数字の部分でインストールするバージョンを指定。)

# curl --silent --location https://rpm.nodesource.com/setup_11.x | bash 

ここから、インストールとアンインストールを繰り返したため、手順が間違っていたらすみません。
以下を参考にしました。先の読んでおいて欲しいです。
yumでのnodejsのバージョンアップにはまった話と解決方法

古い方のrpmを削除。

# rm /etc/yum.repos.d/nodesource-el.repo

アンインストールする。

# yum -y remove nodejs

キャッシュを削除。

# yum clean all

インストールする。

# yum -y install nodejs

バージョンを確認。

# node -v
v11.15.0

成功です!
そして、偉い権限のところから出る。

# su vagrant

herokuのバージョンも確認

$ heroku -v
heroku/7.44.0 linux-x64 node-v11.15.0

他の参考記事です。
https://qiita.com/daskepon/items/16a77868d38f8e585840
https://inaba.hatenablog.com/entry/2018/11/13/023933

ほぼ同じエラーが出ていた記事
https://teratail.com/questions/256490

感謝

参考にさせていただいたサイト管理人の皆様、誠にありがとうございました。


Viewing all articles
Browse latest Browse all 9229