# nodejs 使う時のエラーたち

# nodejs バージョンアップしたら、npm run prod 時が node-sass エラー





















 





















[webmaster@www.net]$ npm run prod

> @ prod /home/webmaster/public_html/www.net
> npm run production


> @ production /home/webmaster/public_html/www.net
> cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

/home/webmaster/public_html/www.net/node_modules/webpack-cli/bin/cli.js:93
                                throw err;
                                ^

Error: Missing binding /home/webmaster/public_html/www.net/node_modules/node-sass/vendor/linux-x64-72/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x

Found bindings for the following environments:
  - Linux 64-bit with Node.js 10.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ production: `cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ production script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/webmaster/.npm/_logs/xxxxxx_964Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ prod: `npm run production`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ prod script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/webmaster/.npm/_logs/2020-01-16T07_12_05_981Z-debug.log

Laravel npm run prod コマンド実行する時に下記エラー発生

Error: Missing binding /home/webmaster/public_html/www.net/node_modules/node-sass/vendor/linux-x64-72/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x

# node-sass エラーの解決方法

エラー原因
npm installを実行してから環境が変わって再度npm install実行した時に発生します。

解決方法は 21 行目あたりに書いてありますが、npm rebuild で問題解決、npm rebuild node-sassを実行して現在の環境のバインディングをダウンロードしてリビルドします。

npm rebuild node-sass

気になるところですが、エラーメッセージに答え書くなら 自動で修正しないかい?!

# npm ビルドの時にメモり不足で中断エラー

メモりリミットエラーみたいの感じで言ってます

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

# メモり不足エラーの解決方法

エラー原因
v8 で npm install したらメモりオーバーする可能性のエラー

解決方法はNODE_OPTIONS=--max_old_space_size=2048オプションをつけてメモりサイズ指定すること

laravel config 設定が下記








 


  "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "npm run development -- --watch",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production  NODE_OPTIONS=--max_old_space_size=2048 node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },

# WARN fsevents@1.2.9

よく見かけるけど、いつも無視してませんか?

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/fsevents):

って何のワーニングでしょうか?

答えはたくさんありますが、

これをエラーと思ってるなら勘違いです。
WARN って書いてあるとおり警告です。
警告はエラーではありません。(ここ見てると何故が警告をエラーと思う人が多い…)

ここに書いてますが、fsevents は MacOS のネイティブ API を使うためのライブラリ(つまり今使おうとしているライブラリを MacOS 上で使う時に必要になるもの)なので、Windows 環境なら無視して良いはずです。

参考:Unsupported platform for fsevents@2.0.7、(2)nodist(x64)をインストールしたい、を解決したい (opens new window)

2020-01-16
  • javascript

関連記事

Javascript 非同期処理 async と await のメモ
javascript  指定場所にスムーズにスクロールする方法
Nuxt.js と Ant Design Vue 2 テーマカスタマイズ
react 強制的にレンダリングする方法
JavaScript ライブラリ aos.js 使ってスクロール連動アニメーション
Jsconfig と Tsconfig
Cookie localStorage sessionStorage の違い
Javascript var let const 変数宣言の違い
Javascript 電話番号フォーマット
国際化 i18n と地域化 L10N
大きいファイルをスライス分割してアップロード
javascript 文字列と配列検索 indexOf findIndex find some includes 関数の違い
Javascript DataTables で excel 風 table 作る
javascript 配列 重複排除
vuejs back to top button component 作成
bootstrap vuejs 使って generate する際に babel が icons ファイル max 500KB エラー
Nuxtjs 動的なルーティング静的ページ自動生成
キーコード取得 & キーコード一覧
Sweet Alert swal に複数 content
moment.js 使って日本語曜日対応
javascript 開発で出会った TypeError
開発時によく使うゼロ埋めパディング作業まとめ
ReferenceError: location is not defined
vuejs で omisejapan の決済フォーム作成した時のメモ
ブラウザーで動く javascript のクッキー操作ライブラリ js-cookie
javascript reduce 連想配列の合計計算覚えよう
nuxtjs と codeigniter で jwt システム構築
javascript で作る html から PDF 変換 pdfmake の日本語対応
javascript 楽しく遊ぼう!メッセージつぶやくウシ cowsay
Javascript vuejs の validation 正規表現でフォームチェック作ったときのメモ
正規表現一覧 よく使う検索・置換のパターン
javascript password generator ランダム文字列パスワード作成
javascript 日本語 shift-js 対応 CSV ダウンロード
開発におけるコーディングルール・規約