You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Codedov を使うと出された PR がどれくらいのカバレッジの変化量があるのかを簡単に可視化することができます。こうしたものが数値となって見えるようになると、積極的にテストを書くきっかけにもなるはずです。OSS であれば無料で利用でき、導入もとても簡単でおすすめです。 以前 rehype の プラグインを作成したのですが、そのプロジェクトでカバレッジの変化量を可視化したくなったため、Codecov を導入してみました。 対応内容の PR は次になります。 github actions で Codecov を使用する #13 Codecov の料金については公式サイトの Pricing に記載されおり、OSS であれば無料で利用できます。 事前準備 Codecov にサインアップして利用するリポジトリを setup する必要があります。 この手順については、公式ドキュメントの Quick
この記事で目指すこと TypeScript を用いて npm パッケージの実装を行えること パッケージを公開するにあたって、適切な設定がなされていること 実際に npm にパッケージが公開されて npm i <package-name> でインストールができるようになっていること やらないこと パッケージを非公開にする設定 前提 Node.js が利用できること ※ 今回主に用いる npm は Node.js に標準で付いてきます プロジェクト毎での切り替えなどの利便性から自分は nodenv を使用しています。 nodenv のインストールや初期化手順などは以下が参考になります。 手順 npm アカウントを作成する パッケージを初期化する サンプルモジュールを実装する TypeScriptを設定する パッケージ公開に関する設定を行う パッケージを公開する インストールして使ってみる np
こんにちは。フロントエンドエキスパートの平野(@shisama_)です。 フロントエンドエキスパートチームでは業務時間の 30 % の時間で技術探究を行っています。 今回は探究した技術の中から Node.js の ES Modules(以下 ESM)についてと Dual Package (CommonJS/ES Modules) に対応した npm パッケージの開発について紹介します。 ES Modules の特徴 ESM はブラウザ互換 ESM は Strict モード ESM は非同期 ESM は静的解析可能 Node.js の ESM 対応について Dual Package(CJS/ESM)に対応した npm パッケージの開発 Conditional Exports によるファイルの指定 .mjs と .cjs require など CJS 特有の機能を使う ESMから CJS ファ
目的 Vanilla JavaScriptのfetch()に特定の時間が追加したら、エラーを起こして処理を終わらせる時限機能、そして、fetchが取得に失敗した時に特定の回数のみ再度取得を試みる機能を追加すること。 背景 fetchを使うのか、axiosを使うのか、迷うエンジニアもいると思います。基本的に、axiosを使うべきだと筆者は考えています。なぜなら、Axiosを使えば、Timeoutはすぐに設定できるのと、axios-retryというパッケージを使えばretryの機能も簡単に追加できるからです。 ただし、場合によってはaxiosを入れたくない事情もあるのかもしれません。また、筆者も経験しましたが、axios-retryが思うように動いてくれなかったりします。axiosは簡単に使えるが、何をしているかわからん、ということはよろしくない状況なので、ここでは勉強も兼ねて同じことをfet
はじめに ファイルサイズが数十GB程度あり、ファイルから読み込んだデータを全てメモリ上に展開するには大分無理のあるXMLファイルを扱う機会がありました。そんな時に便利なライブラリnode-xml-streamを見つけたので使い方をご紹介していきます。 今回、Node.jsのバージョンは18.12.0、node-xml-streamのバージョンは1.0.2を使用しています。 node-xml-streamとは XML/HTMLファイルを軽量かつ高速に処理するパーサーライブラリです。Node.jsの標準APIであるStreamを使用して作られています。 通常のファイル読み込みではデータを一気にメモリ上に展開してから後続の処理に進むのに対し、Streamを使用したファイル読み込みではchunkと呼ばれる単位でファイルを読み込みながら順次処理することができるため、物理メモリサイズを超えたファイルの
ひょんな拍子に、JavaScriptで「ガ」のような濁点付きの仮名を「カ」に直さないといけなくなったのですが、テーブルなしで対応できることが判明しました。 NFCとNFD 「ガ」と「ガ」、肉眼で見ればほぼ違いがないですが、データとしては全く別物になっています。 ガ…文字コードは\u30ac、濁点まで含めて1つの文字 ガ…文字コードは\u30ab\u3099、「カ+結合文字の濁点1」 このように、Unicodeでは、「複数のコードポイントを結合した文字」と「結合した状態で1つのコードポイントに登録された文字」の両方が存在していることがあります。視覚的にも意味的にも全く同じものが別なコードで表されていると(正準等価)、検索の際に厄介です。 そのようなときに役立つルールとして、Unicodeは正規化の手順も定義しています。これは4つありますが、まずは2つを取り上げます。 NFD…正準等価な文
こんにちは!株式会社スマレジ、エンジニアのmasaです。 今日は、以前から触っている環境にStoryBookを入れて、アプリ登録までやってみたので、 手順を残したいと思います。 StoryBookって? 公式ページ storybook.js.org Storybook is the most popular UI component development tool for React, Vue, and Angular. It helps you develop and design UI components outside your app in an isolated environment. Learn Storybook to create bulletproof UI components, along the way you’ll build an app UI from
宿泊事業本部の宇都宮です。 一休.com スマホサイトのホテルページパフォーマンス改善プロジェクトでは、フロントエンドには以下のような要件がありました。 デザイン面は既存を踏襲する 機能はほぼ従来通り 日付等を変更した際の再検索は、画面遷移を挟まず、画面内で行えるようにする パフォーマンスをできるだけ改善する 要するに、従来と同様の機能+αを実現し、かつ、従来と同等以上のパフォーマンスを実現する、というミッションです。 このために、どのような取り組みを行ったか、紹介します。 パフォーマンス目標値の設定 まず、パフォーマンスの目標値を設定する必要があります。モバイルでは、ユーザの帯域幅は回線や時間帯によって大きな変動があります。多少回線状況が悪くても、閲覧を妨げない程度のパフォーマンスを実現する必要があります。 一休へアクセスするユーザのモニタリングを見ると、極端に遅い回線を使っているユーザ
JavaScriptに興味を持つ世界中のIT技術者3万9472人が回答したアンケートの結果をまとめた「State of JavaScript 2022」が公開されました(日本語訳版が同時公開されています)。 回答者の国別分布を上位5位までを見ると米国が11.9%、ドイツが5.2%、フランスが3.7%、イギリス(UK)が3.6%、そしてインドが3.2%。 言語別の回答者は、英語が69.6%、フランス語が3.4%、ドイツ語が3.1%、スペイン語が3%などとなっており、日本語での回答者は0.4%でした。 アンケートの結果は、ProxyやPromiseなどに関するJavaScriptの新機能がどのくらい使われているか、Service WorkerやWebGLなど新しいブラウザAPIがどのくらい使われているかや、人気のJavaScriptライブラリ、JavaScriptは正しい方向に進化していると思
DOM, Node, Elementについてそれぞれの違いを説明できますか? DOM Node Element 実践!NodeをElementに変換する まとめ リンク DOM, Node, Elementについてそれぞれの違いを説明できますか? Web開発において、これらをすべて「要素」として呼んで曖昧にしていると型定義などで詰まることがあります。 この3つの名称、実は明確な違いがあると知っていましたか? これを期にマスターしましょう。 DOM DOMは、「Document Object Model、つまりドキュメントを物として扱うモデル」のことを言います。 DOMツリーという階層構造を持ち、JavaScriptはDOMツリーを操作することでHTMLを操作することができます。 <body> ├──<section> │ ├──<p> │ ├──<p> │ └──<p> ├──<secti
目標:ServiceWorkerにキャッシュを保持して、とりあえずオフラインでも表示できるようにする。 PWAやってみたい ページスピードあげたい はじめに そもそもサービスワーカーって何!?という方はこちらの記事が分かりやすかったです。 参考:Service Workerってなんなのよ (Service Workerのえほん) 実装するにあたりWorkboxというGoogleのライブラリを使います。PWAのライブラリというよりはサービスワーカーの設定が簡単にできるライブラリという認識です。(※そのためホーム画面追加やプッシュ通知はこのライブラリには含まれません。多分。) 今回は最も簡単な方法をご説明したいので、GulpやWorkboxCLI等のビルトツールは使いません。キャッシュしたい(オフライン対応させたい)リソースを地道に書いていきます。(別の記事で書きます) Servicework
Intro テストや仮実装で、適当なランダム文字列が欲しい場合に便利なスニペット。 random string DEMO // with random btoa(Math.random()) // => MC44NzEwODQwMjA1NDA2MTE4 // with crypto btoa(crypto.getRandomValues(new Uint8Array(16))) // => MjQ2LDE0NSwxNzAsMjQ0LDY4LDg3LDMzLDE0NiwxNzcsNjAsMTUyLDE3MSwxNTAsMTcsMTA4LDEwNA== // base64 has `=` remove them btoa(Math.random()).replace(/=/g, "") // => MC45NTM0NTM2OTY3MTc5MDY0 // lower case btoa(Math
webpackでバンドルしたnodejsのファイル(人間が読めない)にエラーが発生した場合、ソースコードの場所(人間が読めるソースコード)を特定する必要があるでしょう。わかったらすごく簡単と知りながら結局時間がかかりましたので、方法を記録します。 簡単なexpressプロジェクト 極簡単なWebpack + Typescript + expressプロジェクト。 ※ ソースコードはこちらへ import express from "express"; const app = express(); const port = 3000; app.use(express.json()); app.get("/", (req, res) => { const body = req.body; throw Error("Error here!!"); res.send("Hello world!")
えっ!? デプロイされた状態のコンパイル済 JavaScript にも Source Map を適用する方法があるんですか!?JavaScriptTypeScriptSourceMapwebpack イマドキのフロントエンド開発だと、TypeScript からのトランスパイルや圧縮をかけられた「コンパイル済」の JavaScript が成果物となっている場合が多いのではないでしょうか。著名なフレームワークが TypeScript をサポートするようになったり、デフォルトのビルド設定で圧縮が適用されていたりするからです。 一方、webpack-dev-server などの開発用サーバを利用していると、ブラウザの開発者ツールがコンパイル前の状態(ソースコード・フォルダ構成)を認識していることに気が付きます。これは、開発用サーバが Source Map を自動生成し、ブラウザに参照させているため
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く