- 投稿日:2020-10-27T16:57:52+09:00
node-sassがDeprecatedになるとのことでNuxt.jsのsassをアップデートした
node-sass(LibSass)って長らく使ってたイメージありますね。
こちらに記事にあるようにLibSassっていうC++で書かれたライブラリを使った非推奨になるとのことで、これを使ってるnode-sassも非推奨になり、Dart製のSassを使ってねという感じになる模様です。
- https://www.npmjs.com/package/node-sass ← 今まではよく使われていたけど今後非推奨
- https://www.npmjs.com/package/sass (Dart Sass) ← 今後はこっちが推奨
今回Node.jsのv15系にアップデートしたのでnode-sassのバージョンも上げようかと思って調べてたら発見しました。
環境
- Node.js v15.0.1
- Nuxt.js v2.12.2
元々v14系で動かしてたけどアップデートさせてみました。
node-sassからsassに移行
削除して(nuxtのバージョンは上げなくても良かったけどついでに)
yarn remove nuxt node-sass sass-loaderインストール
yarn add nuxt sass sass-loaderアプリケーションを起動させてみる
yarn dev無事に起動しました。
package.jsonはこんな感じ
- 元々
package.json"dependencies": { 省略 "nuxt": "^2.12.2", "node-sass": "^4.14.0", "sass-loader": "^8.0.0" },
- アップデート後
package.json"dependencies": { 省略 "nuxt": "^2.14.7", "sass": "^1.27.0", "sass-loader": "^10.0.4" },所感
少し触ってみてるけど特に挙動は変わらない模様です。もともとのsassってすごくビルドが遅くてnode-sassが流行ってきたとかだった気がしたけど(嘘かもしれない)知らぬ間にDartで作り替えられてたんですね。
僕はそのまま移行できた感じですが、そのままスッと移行してプロジェクトに影響でないかは各自の判断でお願いします。
おまけ
これ完全にタイミング悪かった問題だと思うんですけど、node-sassのGitHubリポジトリだとNode.js15系に対応した5.0.0がリリースされていて......
npm側ではまだ対応されてないという感じで
これによってnode-sassを入れ直してもバージョン指定して入れてもうまくいかず、
Node.js v15系でnode-sassのインストールエラーがずっと変わらなかったです苦笑結果的に今回はこれを回避する話ではなかったけど出てたエラーもメモ
・ ・ ・ [3/4] ? Linking dependencies... warning "@nuxtjs/markdownit > raw-loader@4.0.2" has unmet peer dependency "webpack@^4.0.0 || ^5.0.0". warning "nuxt > @nuxt/components@1.1.1" has unmet peer dependency "webpack@^4.0.0". warning " > sass-loader@10.0.4" has unmet peer dependency "webpack@^4.36.0 || ^5.0.0". [4/4] ? Building fresh packages... error /Users/n0bisuke/Documents/hogehoge/node_modules/node-sass: Command failed. Exit code: 1 Command: node scripts/build.js Arguments:
- 投稿日:2020-10-27T14:19:33+09:00
【Heroku】Application error【Node.js】
module関係のApplication errorの記事です。
勉強用にHerokuに初デプロイした際に発生した事象をまとめました。
環境
ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G14033yutakaf@mi ~/Desktop/git/weather_web main heroku --version heroku/7.46.2 darwin-x64 node-v12.16.2 yutakaf@mi ~/Desktop/git/weather_web main node -v v12.18.4素直に
heroku logs --tail
を入力しよう。yutakaf@mi ~/Desktop/git/weather_web main heroku logs --tail 2020-10-27T04:13:34.590447+00:00 app[web.1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) { 2020-10-27T04:13:34.590448+00:00 app[web.1]: code: 'MODULE_NOT_FOUND', 2020-10-27T04:13:34.590448+00:00 app[web.1]: requireStack: [ '/app/src/app.js' ] 2020-10-27T04:13:34.590448+00:00 app[web.1]: } 2020-10-27T04:13:34.601505+00:00 app[web.1]: npm ERR! code ELIFECYCLE 2020-10-27T04:13:34.601726+00:00 app[web.1]: npm ERR! errno 1 2020-10-27T04:13:34.606489+00:00 app[web.1]: npm ERR! weather_web@1.0.0 start: `node src/app.js` 2020-10-27T04:13:34.606605+00:00 app[web.1]: npm ERR! Exit status 1 2020-10-27T04:13:34.606716+00:00 app[web.1]: npm ERR! 2020-10-27T04:13:34.606828+00:00 app[web.1]: npm ERR! Failed at the weather_web@1.0.0 start script. 2020-10-27T04:13:34.606911+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 2020-10-27T04:13:34.611862+00:00 app[web.1]: 2020-10-27T04:13:34.612012+00:00 app[web.1]: npm ERR! A complete log of this run can be found in: 2020-10-27T04:13:34.612101+00:00 app[web.1]: npm ERR! /app/.npm/_logs/2020-10-27T04_13_34_607Z-debug.log 2020-10-27T04:13:34.661115+00:00 heroku[web.1]: Process exited with status 1
code: 'MODULE_NOT_FOUND'でmoduleが見つかっていないと言われている。
package.jsonでmoduleのインストール設定がdevDependenciesになっているので当たり前だぞ。起動確認でもcrashedと言われている。
✘ yutakaf@mi ~/Desktop/git heroku ps --app rac-weather-application Free dyno hours quota remaining this month: 550h 0m (100%) Free dyno usage for this app: 0h 0m (0%) For more information on dyno sleeping and how to upgrade, see: https://devcenter.heroku.com/articles/dyno-sleeping === web (Free): npm start (1) web.1: crashed 2020/10/27 13:17:14 +0900 (~ 5m ago)
変更前
package.json{ "name": "weather_web", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node src/app.js" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "dotenv": "^8.2.0", "express": "^4.17.1", "hbs": "^4.1.1", "nodemon": "^2.0.6", "request": "^2.88.2" } }変更後
package.json{ "name": "weather_web", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node src/app.js" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "nodemon": "^2.0.6" }, "dependencies": { "dotenv": "^8.2.0", "express": "^4.17.1", "hbs": "^4.1.1", "request": "^2.88.2" } }※1 ちなみにrequest moduleは現在非推奨だぞ。
※2 そもそも、どのモジュールをちゃんと使うか考えていなかったので、npm install --save--dev <package>
していたのが原因。アクセスキーを環境変数から取得している。
githubでpublic設定にしてみたかったので、アクセスキーは公開できない。
なのでコード上では、環境変数から取得する形式をとっていた。
こちらのエラーはモジュール問題を解決する前に解消してしまったため(たぶん)ログにて出力されていないが、おそらく、うまくいっていない場合には、エラーがでたと思われる。
下記のように設定した。✘ yutakaf@mi ~/Desktop/git/weather_web main heroku config:set --app rac-weather-application WEATHER_ACCESS_KEY='WEATHER_ACCESSのアクセスキー' Setting WEATHER_ACCESS_KEY and restarting ⬢ rac-weather-application... done, v4 WEATHER_ACCESS_KEY: WEATHER_ACCESSのアクセスキー yutakaf@mi ~/Desktop/git/weather_web main heroku config:set --app rac-weather-application MAPBOX_ACCESS_KEY='MAPBOX_ACCESSのアクセスキー' Setting MAPBOX_ACCESS_KEY and restarting ⬢ rac-weather-application... done, v5 MAPBOX_ACCESS_KEY: MAPBOX_ACCESSのアクセスキー起動ログ
2020-10-27T05:01:17.934935+00:00 heroku[web.1]: Idling 2020-10-27T05:01:17.937105+00:00 heroku[web.1]: State changed from up to down 2020-10-27T05:01:19.323569+00:00 heroku[web.1]: Stopping all processes with SIGTERM 2020-10-27T05:01:19.460035+00:00 heroku[web.1]: Process exited with status 143 2020-10-27T05:12:04.440395+00:00 heroku[web.1]: Unidling 2020-10-27T05:12:04.442228+00:00 heroku[web.1]: State changed from down to starting 2020-10-27T05:12:07.737901+00:00 heroku[web.1]: Starting process with command `npm start` 2020-10-27T05:12:10.699194+00:00 app[web.1]: 2020-10-27T05:12:10.699212+00:00 app[web.1]: > weather_web@1.0.0 start /app 2020-10-27T05:12:10.699213+00:00 app[web.1]: > node src/app.js 2020-10-27T05:12:10.699213+00:00 app[web.1]: 2020-10-27T05:12:11.246046+00:00 app[web.1]: Server is up on port 23085. 2020-10-27T05:12:11.944720+00:00 heroku[web.1]: State changed from starting to up 2020-10-27T05:12:13.551783+00:00 heroku[router]: at=info method=GET path="/" host=rac-weather-application.herokuapp.com request_id=d778277e-47cc-4e1d-b7e1-94210990b33b fwd="153.229.157.158" dyno=web.1 connect=0ms service=60ms status=200 bytes=982 protocol=https 2020-10-27T05:12:13.911402+00:00 heroku[router]: at=info method=GET path="/css/styles.css" host=rac-weather-application.herokuapp.com request_id=ce338878-68d3-4356-a04a-d7a3375425da fwd="153.229.157.158" dyno=web.1 connect=0ms service=32ms status=200 bytes=1135 protocol=https 2020-10-27T05:12:14.130888+00:00 heroku[router]: at=info method=GET path="/js/app.js" host=rac-weather-application.herokuapp.com request_id=db28448f-e70f-4059-b1d1-4cc9572a17d0 fwd="153.229.157.158" dyno=web.1 connect=0ms service=4ms status=200 bytes=951 protocol=https 2020-10-27T05:12:14.366065+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=rac-weather-application.herokuapp.com request_id=38ea6d92-4f3f-4cef-bcec-dea094db7ede fwd="153.229.157.158" dyno=web.1 connect=0ms service=15ms status=200 bytes=815 protocol=https 2020-10-27T05:12:21.452041+00:00 heroku[router]: at=info method=GET path="/weather?address=Tokyo" host=rac-weather-application.herokuapp.com request_id=f83c9643-bc93-4f29-8857-b5aa32e691f1 fwd="153.229.157.158" dyno=web.1 connect=3ms service=600ms status=200 bytes=466 protocol=httpsとりあえず、テストデプロイまで完了
WeatherApplication ※起動まで時間かかる。
github ※コードはこっち。WeatherApplication内にgithubのリンク貼るとか、いろいろと思うことはありますが、環境付きでのエラー記事は貴重かと思ったので記事化しました。
References
【Node】dotenvで環境変数を設定する
package.jsonにおけるdependenciesとdevDependenciesの違い(超シンプルに)
Node.jsでのHerokuチュートリアル前編
[heroku] 環境変数の操作
WEATHERのAPI(位置情報→天気取得)
MAPBOXのAPI(住所→位置情報取得)
- 投稿日:2020-10-27T10:34:55+09:00
ハッカソンのときの課題と解決のメモ(Node.jsとobniz)
やろうとしていること
距離・照度・距離のセンサーを用いて、obniz経由でLINEにメッセージを出す。
(カラオケのときにコロナに気を配りつつ、2人の距離を詰めるには?)メモ
■アカウント設定周り
まずはLINEで送るときの「Credential」と送信先の「userid」を設定
何かのエラーが出た。
⇒どうやら、送信先のユーザIDの文言の中に「node」という謎の文言を入れていたからでした■センサーの設定
超音波センサー(HC-SR04)
サービスの中身を変えねば。
距離が遠い≠人との距離が遠い
どうやって、物体なのか人なのかを判別するか。
仕組みなのか、座る位置なのか。
⇒判別させるというより、座る位置を工夫することで確実に人との距離を測れるようにする。照度センサー(CdS)
閾値の調整
部屋の明るさだと、明るすぎて大体メッセージ発行されてしまう。
明るさのステータス(閾値を超えた)が変わったときに1度メッセージを送る。
またステータスが変わればメッセージをまた送る。
データ取得頻度の調整
1秒に何十回と計測するのでメッセージ発行が多い
5秒に1回に変更。
lineを複数人に送れなかった問題。
試しに自分が作っているBotに記載のある自分のIDをチームメンバーに渡して送ってもらった。
⇒送られない。なぜか?
⇒lineのIDはbotの中でユニーク。
つまり、自分Aさんが管理コンソールで見ているIDと、
Bot側で見えてみるAさんのIDは違う。
複数人に送るときはBotから見えるIDを使う。