タグ

Node.jsに関するs_ryuukiのブックマーク (378)

  • Node.jsのメモリ制限 (2024年版)

    Node.jsのメモリ制限については以下の記事に記述があります。 しかし、現在の挙動はやや異なるようです。 結論から言うと デフォルトでは、システム (cgroup等) から取得した制限があればそれがそのまま設定、そうでなければ32bit環境では700MiB, 64bit環境では1400MiBの制限が設定されます。 V8のメモリ制限 Node.jsはJavaScriptエンジンとしてV8を利用しています。 V8のGCは世代別GCになっています。ほとんどのオブジェクトは生成されてすぐに不要となるため、メモリ使用量にはそれほど貢献しません。メモリ使用量に貢献するような長命なオブジェクトは、数回のGCを生き抜いた後old generation領域に移されます。したがって、V8のメモリ使用量の制限は実質的にこのold generation領域のサイズ制限によって決まると考えてよいでしょう。 このo

    Node.jsのメモリ制限 (2024年版)
  • bun.lockbのVersion管理をGitでどうやる?問題

    はじめに bun installで生成されるBunのロックファイルはbun.lockbというバイナリファイルである。 公式を読むと性能向上のためにバイナリ化していることがわかる。 Why is it binary? In a word: Performance. Bun’s lockfile saves & loads incredibly quickly, and saves a lot more data than what is typically inside lockfiles. 困ること まさにこのツイートの問題で、Git管理したいのにバイナリが出力されるのは不便で、どうしよう? と実際の番利用では困るだろう。 解決方法 案1. git diffで差分確認する 公式のページを読むと、どうやら設定追加でgit diffができるらしい。 bun install request g

    bun.lockbのVersion管理をGitでどうやる?問題
  • チームで開発するならDev Containersで環境構築工程をスキップしませんか? - Qiita

    読み飛ばしてください みなさまどうも。 限界派遣SESと言われて心が折れるnikawamikanです。 最近、学生さんと一緒になんやかんや開発することがあり、その中で使ってみてよかった技術の中にDev Cointanersと言われる技術があります。 VSCode限定ではありますが、開発環境の差異を可能な限り埋めてくれるスゴイやつです。 さらに言えば新たにチームに参加するメンバーに開発環境の構築を逐一説明する必要もなくなるので、入れ替わりの激しい限界派遣SESにこそ使う技術です。 題 前提として以下の環境はインストールされているものとします。 Docker docker compose (WindowsMacの場合DockerDesktopをインストールしているのでインストール不要のはずです) VSCode OSは上記がインストールできるのであればわりとなんでもOKだと思います(例外はど

    チームで開発するならDev Containersで環境構築工程をスキップしませんか? - Qiita
  • DenoとZigの間でデータ受け渡し

    前回の記事はこちら。 前回JavaScriptWasmでデータを受け渡す概念的なことを説明しました。今回は、実際にDenoZigのコードを書いていきます。 Denoで書いていますが、これまでの記事で説明したようにブラウザのJavaScriptでも少し書き換えるだけで利用できます。 今回説明する方法はあくまで、私が考えた1つの方法にすぎないことをご了承ください。前記事を踏まえて自身で学んで書くか、ライブラリを探すのも一つの手だと思います。 なお、私はZigにあまり詳しくなく、データ受け渡しのための最低限のことしか勉強していません。そのため、Zigのコードについては稚拙なものになっているかもしれませんがご了承ください。 何を作るか 今回の目標は、Zigの標準ライブラリのBase64エンコードをWasm化することです。 これは実際に計測して確かめたことなのですが、Base64エンコード程度の

    DenoとZigの間でデータ受け渡し
  • Chrome for Testing: reliable downloads for browser automation  |  Blog  |  Chrome for Developers

    Today we’re happy to announce Chrome for Testing, a new Chrome flavor that specifically targets web app testing and automation use cases. This article explains why the Chrome team felt this was needed, and walks through concrete examples where Chrome for Testing might benefit you as a developer. Background Browser testing is a vital component of creating a high-quality web experience, regardless o

  • LOCAL環境でHTTPSが必要なときはlocal-ssl-proxyが便利 - Qiita

    nextauth.js でシングルサインオン機能を実装する場合、SlackなどはアプリケーションがHTTPS接続をサポートしていることが前提となっており、開発時にもHTTPSのサポートが必要となる場合があります。このような場合には、local-ssl-proxyを利用して、リバースプロキシのようにする方法が簡単で便利です。 以下、LOCAL環境=Windows PC、という前提です。 local-ssl-proxyのインストール local-ssl-proxyはグローバルインストールしかサポートしていません。ので、グローバルインストールします。

    LOCAL環境でHTTPSが必要なときはlocal-ssl-proxyが便利 - Qiita
  • compose.ymlからコンテナに環境変数を渡す(Node.js側からの参照まで) - Qiita

    実装に至る経緯 E2Eのplaywrightでテストを実装している際に、ログイン処理を書く必要がありました。ただログイン情報(メールアドレス・パスワード)をそのままテストファイルに書くのもセキュリティ的に良くなかったので、ログイン情報を非公開ファイル扱いとしてそこに定義した環境変数をコンテナに渡してアプリケーション側(Node.js)から参照する方法を取りました。以下にその手順を記載していきます。 .envファイルを用意 まず.envファイルを用意します。これは環境変数を定義しておく為のファイルで、ここにログインに必要な情報を記載していきます。

    compose.ymlからコンテナに環境変数を渡す(Node.js側からの参照まで) - Qiita
  • Node.js 14から18へアップデートする方法について

    Corepackを使ってNode.jsをアップデートする ⬆️⬆️というタイトルで、Node.js 14からNode.js 18へのアップデートする方法について話した。 Node.js 14は4月末でEOLで、Node.js 18までアップデートする必要があるけど、npmの変更が混ざって大変です。 Corepackを使うことで、Node.jsとnpmのアップデートを同時にやらなくても良くなり、問題を分割して対応できます! Corepackを使ってNode.jsをアップデートする ⬆️⬆️https://t.co/mRHsBcYbpn pic.twitter.com/HiiCe7c5YE — azu (@azu_re) April 28, 2023 スライド: Corepackを使ってNode.jsをアップデートする ⬆️⬆️ Note: Node.js 14は2023-04-30でEOLで

    Node.js 14から18へアップデートする方法について
  • Docker ComposeでminIO + expressで簡易画像表示APIを作成する - Qiita

    やること アップロードした画像をS3に保存し、CloudFrontで画像を配信するシステムをローカル環境で再現します。 背景 minIOの画像をパブリックアクセスで表示しようとすると、認証処理が煩雑?というかできなさそう?だったので、いっそのことその処理は軽量なwebサーバのexpressに任せてしまおうというお話です。 ハマった点 minIOのS3エンドポイントを指定するときに、パス形式にしないとアクセスエラーとなってしまいます。 ただし、amazon S3自体はパス形式URLの非推奨となる予定なので、注意が必要です。 仮想ホスティング形式

    Docker ComposeでminIO + expressで簡易画像表示APIを作成する - Qiita
  • 入門Cloudflare Workers

    はじめに この記事はCloudflare Workersの入門記事です。 名前は聞いたことがあるけれどCloudflare Workersが何者か知らない方 「Cloudflare Workersはサーバーレス・エッジコンピューティングサービスだよ」と説明されて日語でOKと感じた方 AWSLambdaGCPのCloud Runと似たコンセプトのサービスだろうと認識されている方 上記に当てはまる方のお役に立てるはずです。 開発環境の構築 まずは開発環境を構築しましょう。といっても、最新のnode.jsをインストールするだけです。 インストールできたらバージョンを確認しておきましょう。 補足 v16.13.0より新しいバージョンのnodeが必要になります。記事を読み進めて不具合が発生した場合はnodeのバージョンを確認してください。 Windowsの動作検証はしていません。ここから先の手

    入門Cloudflare Workers
  • もう面倒なWebhook URL更新は不要!「linegrok」でngrokでのLINE Bot開発を超快適に! - Qiita

    もう面倒なWebhook URL更新は不要!「linegrok」でngrokでのLINE Bot開発を超快適に!Node.jsLINEngroklinebot ngrokって便利ですよね LINE Bot開発ではローカル実行したBotサーバーへパブリックにアクセスする手段としてngrokがとても便利ですよね😊 ただngrokって毎回ランダムなサブドメインのURLが発行されるので、起動のたびにLINE DevelopersコンソールからWebhook URLを変更しなきゃいけないのがなかなかつらいとこだと思います。 さらに、先日LINE DCハッカソンに参加した際に久しぶりにngrok使ったのですが、前は8時間ぐらいURLが有効だったはずが2時間で無効になるようになっていました。 ただでさえ大忙しなハッカソン中に何度もWebhook URLを更新しなければならず、つらみの極みでした😢 こ

    もう面倒なWebhook URL更新は不要!「linegrok」でngrokでのLINE Bot開発を超快適に! - Qiita
  • うわっ…私のDockerコンテナ、落ちるの遅すぎ…? - Qiita

    version: '3.9' services: node: image: node:18-slim tty: true ports: - '4000:4000' volumes: - ./node:/node root@sun33 /home/sun33/qiita/init # docker compose up -d [+] Running 2/2 ⠿ Network init_default Created 0.0s ⠿ Container init-node-1 Started 0.4s root@sun33 /home/sun33/qiita/init # docker-compose ps NAME COMMAND SERVICE STATUS PORTS init-node-1 "docker-entrypoint.s…" node running 0.0.0.0:8000

    うわっ…私のDockerコンテナ、落ちるの遅すぎ…? - Qiita
  • Blazorでnpmを使う - Qiita

    今回はBlazorでnpmを使ってjsバンドルを作成して使うとこまで記事にします。 正直なところnpmを使う前提であればBlazorを使う理由は 無いかなとも思いますが、とりあえず手順を残しておきます。 Symbolアプリ開発にはいろんな方が作成してくれたモジュールがあるのですが、 基javascript or typescriptなのでC#で使用したい場合は一から作成しないといけません。。 そこに時間を使いたくはないのでNpmを使える環境を用意したい! ちなみにSymbolとは何か気になった方は以下のリンクを参照して下さい。 それでははじめましょう! Blazorプロジェクトを作成 Blazor WebAssemblyプロジェクトを作成します。 プロジェクト名は任意で決めて下さい。 .NET 7.0を使用します。 Npm環境を構築 作成されたプロジェクトのルートにNpmJSフォルダ

    Blazorでnpmを使う - Qiita
  • Deno入門 ~インストールからデプロイまで~

    What is Deno? Deno は、V8 JavaScriptエンジン及びRustプログラミング言語に基づいた、JavaScript及びTypeScriptのランタイム環境 Node.jsの作者によって作られているとのこと。 Node.jsの反省点を活かして改善を入れているらしいです。 また、単一実行ファイルとしてビルドできるため、Denoの環境が無くても実行ができるのが特徴。 個人的には最初からTypeScriptをサポートしている点がNode.jsより強いと思いました。 Installation macOS/Linuxを基準として記載します。 curl -fsSL https://deno.land/x/install/install.sh | sh # 以下を自身のシェルの設定に入れる ex.) .zshrc or .bashrc export DENO_INSTALL="$H

    Deno入門 ~インストールからデプロイまで~
  • ノーリツ製の給湯器リモコンをPCからNode.jsで操作する(ECHONET Lite)

    こんにちは。 久しぶりに帰省したところ、実家の給湯器のリモコンがIoT対応の製品 RC-G001MW-2 (ノーリツ)になっていました。これはハックしなければならないと思っていじってみたところ、HEMS向けの機能を利用することでわりと容易に制御できたので記事にしてみた次第です。 (画像:ノーリツ公式サイトより) 成果物のコマンドラインツールはnpmに公開しているので、同じモデルや同一プロトコルに対応した給湯リモコンをお持ちの方は実験できるかもしれません(詳細は記事末尾参照)。 HEMS HEMS (Home Energy Management System)とは宅内のエネルギー使用量を管理・可視化する装置です。昨今のIoT対応家電はHEMSとの連携が前提になっているものも増えているようです。 ECHONET Lite HEMSのために国内で策定された通信規格がECHONET Lite(エコ

    ノーリツ製の給湯器リモコンをPCからNode.jsで操作する(ECHONET Lite)
  • Deno を使って Node でも Deno でも動くライブラリを作る - Qiita

    Deno アドベントカレンダー 24日目の記事です。 今日は Deno を使って Node でも Deno でも動くライブラリ(もしくはツール)を作成する方法を紹介します。 Deno 界隈では最近 npm 互換性機能がリリースされて、Deno から使えるツールが一気に増えたということで話題になっていますが、逆に Deno で作ったツールを Node/npm に対応させるという逆向きの互換性についても開発が進んでいます。 この記事では、Deno が公式で提供している dnt というツールを使う方法を紹介します。 dnt を使った場合の、Node と Deno 両対応の主な流れは次のようになります。 まずは Deno で動くようにツールを作る (Deno に対応) dnt を設定して、ツールのエントリーポイントを Node 用に変換出来るように準備する dnt を実行して Node 用モジュー

    Deno を使って Node でも Deno でも動くライブラリを作る - Qiita
  • 2022年のDenoの変更点やできごとのまとめ

    Denoアドベントカレンダー 25日目の記事です🎅 この記事では、2022年にDenoに関して起きた出来事や大きな変更点などをまとめます。 Denoの今後の方針について 今年の8月にDeno公式から今後の開発方針などが発表されました。 具体的には、以下の点などに注力していくことが発表されています。 Node.jsとの互換性の向上 パフォーマンスの向上 開発体験の向上 それぞれの詳細については後ほど紹介いたしますが、これらの方針を実現するために、Deno体へのnpmパッケージサポートや新しい高速なHTTPサーバの導入などが実施されました。 Deno体のアップデート npmパッケージがサポート Denoでnpmパッケージが利用できるようになりました。 以下のように、npm:<パッケージ>@<バージョン>のような形式でimport文を記述することでnpmパッケージを利用できます。 // @

    2022年のDenoの変更点やできごとのまとめ
  • Docker+nginx+Express(Node.js)で簡易なAPIサーバーを作る - Qiita

    概要 この記事は「【マイスター・ギルド】物のAdvent Calendar 2022」9日目の記事です。 まぁかくかくしかじかありまして、JavaScriptの練習としてAPIを叩いて返ってきた値(JSON)を画面に表示してみよう、そのための環境を作ろうってなったんです。 JavaScriptの練習だからフロントはもちろん使うけど、API側もNodeで書けばより理解も深まるだろうということでExpressなるフレームワークがあると知ってそれを使って環境構築をしてみました。 最近nginxの勉強もしたのでプロキシ設定を使った構成の練習台にもちょうどよかったです。 環境を作ろう 準備 こんな感じのディレクトリ構成にします。今回はデスクトップに作成しました。

    Docker+nginx+Express(Node.js)で簡易なAPIサーバーを作る - Qiita
  • Node.jsコンテナイメージを極限まで軽量化! サイズを1/10以下に|SHIFT Group 技術ブログ

    はじめにSHIFT DAAE の shinagawa です。表題の通りNode.jsで作成したコンテナのイメージサイズの軽量化に挑戦しました。 背景近年の多様化・高速化するビジネスに対応するITシステムの構築を実現する「クラウドネイティブ」の構成要素の一つとして 「コンテナ」という仮想化技術が存在し、当部門でも活用を進めております。 このコンテナイメージを作成するにはアプリケーションコードやライブラリ・モジュールなどの依存物、ランタイム等を1つのイメージとして組み立てて作成しますが、 この構成要素が増えるとイメージサイズが肥大化し保管時のストレージのコストの増加やイメージの転送、環境への展開に時間がかかることになります。 従ってイメージのサイズを削減することは、これらの点を改善することにつながります。 ここではネット上で紹介されている、あらゆる打ち手を組み合わせてコンテナイメージの軽量化に

    Node.jsコンテナイメージを極限まで軽量化! サイズを1/10以下に|SHIFT Group 技術ブログ
  • [人気急上昇中] あなたはYAMLファイル1つでiOS、Androidアプリの環境管理ができるTrapezeを知ってるか

    記事は Ionic Framework / Capacitor / Stencil Advent Calendar 2022 の11日目の記事です。 Trapezeは、YAMLファイルからモバイルアプリケーションを構成・管理するために生まれた新しいNode.jsツールです。 アプリケーションのバージョン管理や、iOSのplistに書く「カメラのパーミッション許可をもらう理由」などを毎回、XcodeとAndroid Studioを開いて、そのプロジェクトのファイルを開いて、いちいち書くのは面倒ですよね。実務上の問題もあります。iOSとAndroidの両方が同じバージョンなのに、わざわざ手作業で別々に書くことは何かの意味がありますか?ましては、Webアプリケーションと3プラットフォームで開発していて、WebアプリケーションはCIのバージョンタグを使って、package.jsonから自動でバー

    [人気急上昇中] あなたはYAMLファイル1つでiOS、Androidアプリの環境管理ができるTrapezeを知ってるか