移行が大変だもん
This blog was written by Bethany Griggs, with additional contributions from the Node.js Technical Steering Committee. We are excited to announce the release of Node.js 16 today! Highlights include the update of the V8 JavaScript engine to 9.0, prebuilt Apple Silicon binaries, and additional stable APIs. You can download the latest release from https://nodejs.org/en/download/current/, or use Node V
The Buffer type has been the cornerstone for binary data handling in Node.js since the beginning. However, these days we have Uint8Array, which is a native JavaScript type and works cross-platform. While Buffer is an instance of Uint8Array, it introduces numerous methods that are not available in other JavaScript environments. Consequently, code leveraging Buffer-specific methods needs polyfilling
ライブラリやツールなどを作っているときに、特定の機能やパッケージを非推奨にする場合があります。 これらの非推奨はリポジトリ上のREADMEやIssueなどに書いても、利用者が気づかないことがあります。 そのため、利用者が気付けるように非推奨の機能やパッケージを使った場合に警告を出す方法を紹介します。 非推奨にはいくつかの段階があり、それに応じてやり方を変えられるので、それぞれの方法を紹介します。 パッケージの非推奨化: npm deprecate <package> <message> コードレベルの非推奨化: JSDocタグの@deprecated 実行時の非推奨化: process.emitWarning() パッケージの非推奨化: npm deprecate <package> <message> npmのパッケージレベルで、そのパッケージが非推奨であることを通知するにはnpm de
この記事は Node.jsのカレンダー | Advent Calendar 2021 - Qiita の2日目の記事です。 今回はnapi-rsというNode-APIを使ったNode.js add-onをRustで書けるツールを紹介します。 napi.rs 目次 目次 Node-API とは napi-rsとは napi-rsの使い方 Rust のコードを追加してみる napi-rsを使ったnpm publish 今後試したいこと 著名npmパッケージのセキュリティインシデントとpostinstallの問題点 まとめ Node-API とは napi-rsの紹介をする前にNode-APIについて説明します。 Node.jsは、Node.js自体をネイティブレベルで拡張するためのadd-onをユーザーが開発するためのNode-APIと呼ばれるAPIを提供しています。Node-APIは以前はN
ウェブアプリを開発するとき、できるだけ操作は直感的に行えるようにしたいものですが、ドラッグ&ドロップという操作をブラウザ内で行えるように実装するのはなかなか面倒です。「gridstack.js」はそうした面倒な実装を代わりにやってくれるライブラリで、まさに一瞬と言えるほどの手軽さでドラッグ&ドロップ操作可能なカードを実装できるとのことなので、実際に使って試してみました。 gridstack.js | Build interactive dashboards in minutes. https://gridstackjs.com/ gridstack/gridstack.js: Build interactive dashboards in minutes. https://github.com/gridstack/gridstack.js gridstack.jpのサイトに行くとデモが用意
In this blog post, I’ll explain everything you need to know in order to use and produce native ECMAScript modules on Node.js. The GitHub repository iterable is an example of a TypeScript ESM package that works on Node.js. It still uses the "typesVersions" workaround (which isn’t needed in TypeScript 4.7 and later). (Thanks to Guy Beford and Oleg Drapeza for their feedback on this post.) TypeScript
Node.js を直にインストールし、後からNode.js バージョン管理ツールを導入する際には Node.js を完全にアンインストールすることを求められる場合があります。 Microsoft 公式ドキュメントを読んでみる Windows に Node.js をインストールする方法は Microsoft 公式ドキュメントに記載されています。 上記に Node.js バージョン管理ツールの nvm のインストール手順も記載されており、その中で既存の Node.js の削除について Stack overflow を参照するようにリンクされています。 Stack Overflow を読んでみる How to remove Node.js from Windows: 0.Take a deep breath. 1.Run npm cache clean --force 2.Uninstall f
Add JSR packages with pnpm and YarnYou can now access JSR packages via pnpm and Yarn. Here's how. Introducing the JSR open governance boardJSR, a modern open source JavaScript registry, is meant for the greater JavaScript and TypeScript community. We're thrilled to announce its own independent governing body. Announcing OpenAI on JSROpenAI, leading development platform for building generative AI p
OK Google, Protocol Buffers から生成したコードを使って Node.js で gRPC 通信して Mercari Advent Calendar 2020 の17日目は、メルカリ WebUX チーム でテックリードマネージャをしている @vwxyutarooo がお送りします。普段はエンジニアリングマネージャやテックリードをしたりフロントエンドエンジニアをしています。今日は Node.js で gRPC 通信します。なぜなら Node.js で gRPC 通信したいからです。 Mercari ではバックエンドに microservices アーキテクチャを採用していて、gRPC も採用されています。多くの microservices は go 言語によって実装されていますが、一部のサービスでフロントエンドエンジニアとのコミュニケーションや on-call 対応の受
2023年10月17日にリリースされたNode.js v21の主な変更点を紹介します。 この記事を書いている時点ではv21.4.0が最新版ですので、v21.0.0からv21.4.0までの変更点で注目の機能をまとめています。 nodejs.org fetchとWebStreamsが安定版へ WebSocketの実験的な実装 navigator.language/languages の追加 V8 11.8 による新しい JavaScript の機能 ESM をデフォルト化するフラグ 実行ファイルがESMなのか自動判定する実験的機能 import.meta.dirname/filename の追加 テストランナーがglobでのテストファイル指定に対応 警告(Warning)を無効化するフラグの追加 その他の変更点 まとめ 参考記事 fetchとWebStreamsが安定版へ github.com
[[toc]] Three years ago, I wrote a post about shipping ESM & CJS in a single package, advocating for dual CJS/ESM formats to ease user migration and trying to make the best of both worlds. Back then, I didn't fully agree with aggressively shipping ESM-only, as I considered the ecosystem wasn't ready, especially since the push was mostly from low-level libraries. Over time, as tools and the ecosyst
2020-07-15 OWASP Sendai Node.js の色々 OWASP Kansai board member はせがわようすけ 長谷川陽介 (はせがわようすけ) (株)セキュアスカイ・テクノロジー 取締役CTO [email protected] https://utf-8/jp/ 千葉大学 非常勤講師 OWASP Kansai ボードメンバー OWASP Japan ボードメンバー CODE BLUEカンファレンス レビューボードメンバー OWASP Kansai Chapter 自分たちの直面するWebセキュリティの問題を 自分たちの手で解決したい!  日本で2番目の OWASP Local Chapter  Webセキュリティの悩み事を気楽に相談し情報共有できる場  スキル、役職、業種、国籍、性別、年齢に関係なし vol.16 OWASP Kansai 森田 智彦
I learned to code in the Javascript stack [1] and am building a Javascript based product [2]. I never questioned this stack: many companies default to it, JS everywhere seems good, and the community is big. But for my new side project I decided to try Rails because despite some perception that Ruby on Rails is ‘over’, people in HN comments say it was somehow more enjoyable than the newer Node base
社内で「node --test って実際どうなの?」という議論がありました。その参考に、id:mizdra が node --test 最近を触って思ったことや、感想などを書いてみます。 結論だけ先に書いておくと、node --test はミニマムなテスティングフレームワークです。テストする時に必要とされる機能は大体ありますが、Vitest と比較すると色々欠けてます。そして、Vitest と比べて何が足りないのか、実際に触ってみるまで意外と分からないです。とりあえず動けば OK という人は、Vitest 使ったら良いと思います。node --test はミニマリスト向けです。 node --test とは まず node --test って何という人のために書いておくと、Node.js 組み込みのテストランナーのことです。Node.js v16.17.0, v18.0.0 から導入されて
Background Image Courtesy: Photo by Joshua Sortino on UnsplashImagine you have a pile of bricks somewhere. And you want to build a wall with those bricks here. Let’s say you have a friend to help move the bricks. To start building, you now have two options. You can either wait until your friend brings the whole pile of bricks to you, or you can start building as soon as you have a few bricks to st
Notable changes built-in .env file support Starting from Node.js v20.6.0, Node.js supports .env files for configuring environment variables. Your configuration file should follow the INI file format, with each line containing a key-value pair for an environment variable. To initialize your Node.js application with predefined configurations, use the following CLI command: node --env-file=config.env
Cloudflare WorkersでNode.jsを動かすためのあれこれをスクラップに残していたのですが、ハマったポイントが多かったのでこちらに整理しておきます。 今回やろうとしたのは、Zennのマークダウン→HTML変換のAPIをCloudflare Workersで動かすというものです。試行錯誤の末に断念したのですが、以下でその理由をまとめておきます。 CPUやメモリ、ファイルサイズなどの制限が厳しめ 2023/07/25時点でのCloudflare Workersの制限一覧がこちら。 Limits - Cloudflare Workers CDNのエッジで動くので、パフォーマンスが良いぶん制限が厳しめです。 メモリ上限は128MB サイズ上限は無料プランだと圧縮後1MBまで 有料プランだと10MBの上限となるが、できるかぎり1MB以内に抑えたい(参考:Server Side Jav
モチベーション 普段フロントエンドを領分にしているのになかなかこのあたりの基礎が足りていないと感じることが多いので、なんとかしたい。 ES Modules方式でしか対応されていないライブラリを使おうとしてコケたので色々調べたのも含め、まとめていく。 ちなみにその辺りについてはこの神記事見ると良い。 個人的に気になっているモジュールシステムについて掘り下げていく。 CommonJS CommonJSとは、サーバーサイドなどのウェブブラウザ環境外におけるJavaScriptの各種仕様を定めることを目標としたプロジェクトである。 from Wikipedia 例えばNode.jsで使われている。 Node.jsはデフォルトで全てのモジュールをCommonJSで扱うが、Node.jsは最近のバージョンでES Modulesに対応するなどしていて、潮流はES Modulesに流れつつある。 後述する
Async stack traces for better debugging, RFC 6455 compliant WebSocket client subprotocol negotiation, MySQL adapter improvements including affec... Bun.SQL now supports MySQL and SQLite, alongside PostgreSQL. Native YAML support. 500x faster postMessage(string). Bun.build() compile API, with...
Optimizing Node.js Performance: V8 Memory Management & GC Tuning Prevent Crashes and Improve Latency by Understanding and Tuning V8's Garbage Collection for Your Node.js Application A common observation for Node.js developers is the seemingly continuous growth of their application's memory footprint, often measured by the Resident Set Size (RSS) reported by the operating system. This increasing RS
An extremely fast, production-grade web bundler based on Rust. Mako is a new web bundler for Web App, Library, and Framework. It's designed to be fast, reliable, and easy to use. It has been used in hundreds of projects in production by Ant Group, and other companies. If you are looking for a modern web bundler, Mako is the right choice. Getting Started $ npm create mako Why Mako Mako has a lot of
潜んでいるリスク、一番苦手なリスクです!どうも、whatasoda です。 モノリシックなサービスでは、サービスの成長とともに 1 つのアプリケーションの中にさまざまな性質の処理が混在するようになります。Node.js のようなシングルスレッドで処理が実行されるランタイムでは、複数の処理を走らせる場合に 1 つしかないスレッドを取り合う形で互いの処理を待機させ合うような振る舞いをすることがあります。 技術スタックを TypeScript に統一しているダイニーでは当然バックエンドの API サーバーを Node.js 上で実行しています。過去、「注文の受付」や「会計処理」といったリアルタイム性が求められる処理と、「売上の集計」や「CSV ファイルの生成」といったバッチ系の重たい処理が一部共存していたことがありました。 そういった環境で実行される処理同士が干渉し合うことで、レイテンシやエラー
Back in 2008, most people thought of JavaScript as just a client-side language. But when Google's V8 appeared, young developer Ryan Dahl made the connection between non-blocking servers, V8, and JavaScript. It was by combining these key elements that he was able to create the now hugely popular Node.js. What young Ryan Dahl probably didn't expect was how much forking drama would follow. Join us
Node.js compatibility for Cloudflare Workers – starting with Async Context Tracking, EventEmitter, Buffer, assert, and util2023-03-23 Over the coming months, Cloudflare Workers will start to roll out built-in compatibility with Node.js core APIs as part of an effort to support increased compatibility across JavaScript runtimes. We are happy to announce today that the first of these Node.js APIs –
The time has finally come to retire Node Sass. This Node.js wrapper for LibSass was the first official Sass compiler available in the JavaScript ecosystem and was a huge part of Sass growing beyond the scope of the Ruby community where it originated, but it hasn't received a new release in a year and a half and the most recent set of maintainers no longer have the bandwidth to continue updating it
The JavaScript APIs we have today are so much better than those we had even a decade ago. Consider the transition for XMLHttpRequest to fetch(): the developer experience is dramatically better, allowing us to write more succinct, functional code that accomplishes the same thing. The introduction of promises for asynchronous programming allowed this change, along with a series of other changes that
こんにちは teppeis です。普段は開発本部長をやってますが、ブログフェスに駆り出されました! 本日は Node v22.3.0 に続いて v20.16.0 にもバックポートされた process.getBuiltinModule(id) について解説します。 問題: 同期的な条件付き require を ESM 化できない Node v22 にて、フラグ付きで CJS (CommonJS Modules) から ESM を require できるようになりました。いわゆる require(esm) です。これにより、今までは互換性の懸念で ESM 化を足踏みしていた著名ライブラリも ESM 化を試みる動きが出てきました。 TypeScript もその一つで、TypeScript チームは TypeScript 自体を ESM 化しようと試みました。しかしながら、今回の主題である条件付
Palo Alto Networksが発見したリモートコード実行(RCE: Remote Code Execution)の脆弱性「CVE-2022-23529」は、共通脆弱性評価システム(CVSS: Common Vulnerability Scoring System)のスコア値で7.6となり、深刻度は「重要」(High)とされる。 脆弱性が存在するとされるプロダクトおよびバージョンは以下だ。 node-jsonwebtoken 8.5.1およびこれよりも前のバージョン 脆弱性が修正されたプロダクトおよびバージョンは以下だ。 node-jsonwebtoken バージョン9.0.0 同脆弱性はリモートコード実行が可能だが、実際にサイバーセキュリティ攻撃を行うのは困難だと分析される。共通脆弱性評価システムで「緊急」(Critical)に分類されていないのはそうした理由からだ。 一方、Jso
2025-10-15, Version 25.0.0 (Current), @RafaelGSS Node.js 25 is here! We have upgraded V8 to 14.1, bringing major JSON.stringify performance improvements, built-in Uint8Array base64/hex conversion, and ongoing WebAssembly and JIT pipeline optimizations. This release doubles down on secure-by-default apps and web-standard APIs: the permission model gains --allow-net, Web Storage is enabled by defaul
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く