タグ

関連タグで絞り込む (247)

タグの絞り込みを解除

javascriptに関するsh19910711のブックマーク (1,963)

  • GitHub Packagesでプライベートnpmパッケージを公開する - くらげになりたい。

    Nuxt.jsを使って開発してるけど、 よく使う処理やUIコンポーネントをライブラリ化したい。。 とはいえ、公開できるレベルまで作り込む感じでもないので、 npmjs.comに公開するのは気が引ける。。 GitHub Packagesを使えば、非公開パッケージを用意できるっぽいので、 試してみたときの備忘録(*´ω`*) github.co.jp パッケージを公開する package.jsonの設定 { "name": "@<OWNER>/<REPO>", "version": "0.0.1", "description": "private npm package sample", "main": "dist/index.js", "types": "dist/index.d.js", "publishConfig": { "access": "restricted", "registr

    GitHub Packagesでプライベートnpmパッケージを公開する - くらげになりたい。
    sh19910711
    sh19910711 2025/06/11
    2022 / "よく使う処理やUIコンポーネントをライブラリ化したい / npmjs.comに公開するのは気が引ける / GitHub Packagesを使えば、非公開パッケージを用意できる"
  • 小さなデプロイで大きな成果! Next.jsで実現するマイクロフロントエンド

    はじめに こんにちは、令和トラベルでフロントエンドエンジニアをしているyamatsumです。 ここでは複雑なWebアプリケーションを開発・保守する場合に有効なアーキテクチャパターンとして知られているマイクロフロントエンドNext.jsを用いて実現した時の設計とその課題について紹介したいと思います。 ※ この記事は令和トラベルのTech LT会で共有した内容を記事にしたものです。社外の方にもご参加いただけるTech LT会は connpass にて告知しています。 マイクロフロントエンドとは マイクロフロントエンドは、複雑なウェブアプリケーションを小さな独立したWebアプリやモジュールに分割するアーキテクチャパターンです。各Webアプリは異なるチームによって開発・保守することができ、一般に技術スタックやフレームワークの選択も自由です。 このWebアプリ群を組み合わせることで、以下のような利

    小さなデプロイで大きな成果! Next.jsで実現するマイクロフロントエンド
    sh19910711
    sh19910711 2025/05/31
    2024 / "垂直分割は、画面全体を一つのモジュールとして開発し、そのモジュール内で機能ごとにサブモジュールを分割 / 水平分割は、画面を機能ごとに分割し、それぞれの機能を独立したモジュールとして開発する"
  • Vue.jsを用いて数万の農地データ情報を数秒で表示させるまでのカイゼンの軌跡

    開発生産性を始める前に開発チームができること / optim-improve-development-productivity.pdf

    Vue.jsを用いて数万の農地データ情報を数秒で表示させるまでのカイゼンの軌跡
    sh19910711
    sh19910711 2025/05/14
    2024 / "Pinia: 状態管理ライブラリ / APIで座標込みのポリゴンデータを取得 + ポリゴンを全て生成してPiniaに保持 + マップの表示領域・ズーム倍率に応じてPiniaから必要文を取得"
  • JavaScriptを大きく変えうる Dataflow Proposals の概要と論点(Call-this, Pipe Operator)

    Dataflow Proposals とは 以下の5つのプロポーザルをまとめて Dataflow Proposals と呼んでいる。 Stage 2: Pipe operator Stage 1: Call-this operator Stage 1: Partial application(PFA) Stage 1: Extensions Stage 0: Function.pipe and flow 例えば Pipe operator, Call-this operator, Partial application を組み合わせると、以下のように書けるようになる。(提案段階なので変わる可能性アリ) import { getAuth, getIdToken } from "firebase/auth"; function isPublic(article) { return articl

    JavaScriptを大きく変えうる Dataflow Proposals の概要と論点(Call-this, Pipe Operator)
    sh19910711
    sh19910711 2025/05/04
    2022 / "パイプ演算子: まず |> の左辺式が評価 + その結果が右辺のトピックリファレンス @ に束縛され、右辺式が評価 / ネストした関数型スタイルの見通しの悪さを解決"
  • Gio.jsを使って地球儀を表示してみた話

    はじめに 前々から気になっていたGio.jsを使ってみました。 技術記事というよりは感想やメモの記事になります。 Gio.jsとは Gio.jsは、Three.jsで構築されたWeb3Dグローブデータ視覚化用のオープンソースライブラリです。Gio.jsの違いは、Gio.jsを使用して、宣言的な方法で3Dデータ視覚化モデルをカスタマイズし、独自のデータを追加して、それを独自の最新のWebアプリケーションに統合するのが簡単なことです。 (Gio.js READMEの翻訳を引用) 文章だとイメージが掴みづらいですが、要するに地球儀の3Dモデルを表示できます。 またデータを登録することでデータを地球儀上で可視化できるので、以下画像のような地球儀の表示ができます。 Gio.jsの特徴 Gio.jsは以下の3点を特徴として挙げています。 ①導入のシンプル性 最低4行のJavaScriptコードで3Dの

    Gio.jsを使って地球儀を表示してみた話
    sh19910711
    sh19910711 2025/04/21
    2022 / "Gio.js: 3Dの地球儀を描画でき、データを追加することで国同士の関係を可視化できる"
  • Vitestを使った型テストの始め方

    WeJS @ 42nd https://wajs.connpass.com/event/293440/

    Vitestを使った型テストの始め方
    sh19910711
    sh19910711 2025/02/23
    2023 / "型テスト: Vitestを走らせなくても、テスト結果をリアルタイムに確認できる + 慣れればランタイムのテストよりクイックに書ける / 「あるpropが指定された場合はchildrenを持てない」といったテスト"
  • TypedArray のサイズが可変になる ES2024 Resizable ArrayBuffers

    今までの ArrayBuffer の問題 今まで JavaScript の ArrayBuffer はサイズが変わることを想定していませんでした。そのためサイズを変える必要がある API の仕様を作るとなると ECMAScript サイドではなく、その API サイドでの対応が必要な状況になっていました。 例えば WebAssembly.Memory を見てみましょう。 [LegacyNamespace=WebAssembly, Exposed=(Window,Worker,Worklet)] interface Memory { constructor(MemoryDescriptor descriptor); unsigned long grow([EnforceRange] unsigned long delta); readonly attribute ArrayBuffer bu

    TypedArray のサイズが可変になる ES2024 Resizable ArrayBuffers
    sh19910711
    sh19910711 2024/09/21
    "これが ECMAScript に入ることによって WebAssembly.Memory で grow メソッドが呼ばれても、 buffer プロパティが detached されず常に同じ ArrayBuffer オブジェクトを返すようになることが期待" '23
  • npm パッケージが独立して管理されているモノレポ環境に npm workspaces を導入する | DevelopersIO

    こんにちは、製造ビジネステクノロジー部の若槻です。 npm workspacesを導入することで、モノレポ環境において npm パッケージを効率的に管理することが可能となります。 今回は、npm パッケージが独立して管理されているモノレポ環境に npm workspaces を導入する機会があったので、その手順をまとめてみました。 手順 導入前の環境 backendおよびfrontendの 2 つの各サブリポジトリで npm パッケージが独立して管理されており、package-lock.jsonおよびnode_modulesがそれぞれ存在しているという環境です。 $ tree -L 3 . └── packages ├── backend │ ├── index.js │ ├── node_modules │ ├── package-lock.json │ └── package.json

    npm パッケージが独立して管理されているモノレポ環境に npm workspaces を導入する | DevelopersIO
    sh19910711
    sh19910711 2024/06/26
    "npm workspaces: node_modules および package-lock.json はルートディレクトリで集約して管理される / 各ワークスペースに対してそれぞれのパッケージがインストールされ / いちから npm 環境を作り直す必要が無い"
  • JSON.parseはなぜanyを返すのか

    はじめに TypeScriptを始めた頃からanyは悪だと教わってきましたが、それなのになぜanyを返すんだ!? なぜJSON.parseがanyを返すのか気になったので、原因を調べたり推測しました。 anyを使うのは当に適切? なぜanyを返すかを調査する前に、TypeScriptのanyとunknownについておさらいしましょう。 any どのような値でも代入を許す型、コンパイラーが型チェックを行わない型 私は後者の意味が重要だと考えています。 unknown TypeScript 3.0から導入された対象の値の型が何かわからないときに使用する型 unknownの値を絞り込むことによって型安全に使用することができます。 kyのresponse.json 少し話が逸れてしまいますが、ここでkyというFetchをより使いやすくしたライブラリの話をします。 kyでは、レスポンスのコンテンツ

    JSON.parseはなぜanyを返すのか
    sh19910711
    sh19910711 2024/06/24
    "TypeScriptを始めた頃からanyは悪だと教わってきましたが、それなのになぜanyを返すんだ / unknown: TypeScript 3.0から導入された対象の値の型が何かわからないときに使用する型"
  • JavaScriptにSchemeを実装する - Qiita

    この記事は完成していません 更にコードに誤りがあったりして修正されていなかったりするので、一度整理されるまで落とすかもしれません この記事の内容 プログラマが美しい言語を求めて最終的にたどり着く言語、LISP。 プログラミング言語を作るということは、難しいと思われがちですが、実際のところ読み取った文字列を解釈するプログラムを作成するだけで独自の言語を作ることができます。 ただし、プログラミング言語として利便性を実用レベルまで持っていくのは通常、容易ではありません。しかし、Schemeであれば比較的実装が簡単かつ高度な言語を作ることができます。 Schemeはシンプルさとパワフルさの両方を兼ね備えたLISP方言の言語であり、ミニマルな仕様から世界で最も実装される言語です。今回はそんなSchemeをJavaScriptに実装します! 最終的な目標は、ブラウザにCUIを表示して対話形式でSche

    JavaScriptにSchemeを実装する - Qiita
    sh19910711
    sh19910711 2024/06/18
    "読み取った文字列を解釈するプログラムを作成するだけで独自の言語を作ることができます / ただし、プログラミング言語として利便性を実用レベルまで持っていくのは通常、容易ではありません" 2018
  • 【統計学】MCMC サンプリングを JavaScript によるアニメーションで実装しながら理解する - Qiita

    Summary JavaScript(TypeScript) で MCMC ・メトロポリス・ヘイスティング法を実装して解説してみる記事です。 概ね こちらの記事 の JavaScript 実装版です。 この節の内容を実感するために一番良い方法は、どんな計算機言語でもいいから、 ここで述べたことを白紙から実装してみることである。 という訳で実際にやってみました。 手元でアニメーションで動いてくれるものが出来て理解が深まりました 😉👌 作ったもの まずは 成果物 をご覧ください。 最初の50回を Burn-in 期間として、棄却含め250回までのサンプリングを散布図にプロットしています。 薄い灰色でプロットされているのは Burn-in 期間です。受容されたサンプルは青い丸印で、棄却されたサンプルは赤いバツ印でプロットしています。 画面の下半分には、受容されたサンプルだけ使ってトレースライ

    【統計学】MCMC サンプリングを JavaScript によるアニメーションで実装しながら理解する - Qiita
    sh19910711
    sh19910711 2024/06/17
    "薄い灰色でプロットされているのは Burn-in 期間です。受容されたサンプルは青い丸印で、棄却されたサンプルは赤いバツ印 / 画面の下半分には、受容されたサンプルだけ使ってトレースラインとヒストグラムを描画" 2020
  • VSCodeのExtensionをMarketPlaceにリリースする方法 - Qiita

    VSCodeのExtensionを作成したら(こちらの記事参照)、次のステップはMarketPlaceにリリースですね。リリースまでの対応についてまとめたので参考にしてください。 VS Codeの拡張機能をマーケットプレイスにリリースするには、以下の手順で行いました。これには、拡張機能のパッケージ化、Visual Studio Code Publisherの設定、拡張機能の公開などが含まれます。 転載元 当記事は以下ブログからの転載です。 TECH BACK Azure DevOpsアカウントの作成とPublisherの登録 アカウント作成 azure.microsoft.com にアクセスしてアカウントを作成します。 このウインドウはそのままContinueでOK この画面まで来たらアカウントの作成はできています。 そのままプロジェクトを作成してしまいましょう。 プロジェクト作成 適当な

    VSCodeのExtensionをMarketPlaceにリリースする方法 - Qiita
    sh19910711
    sh19910711 2024/06/17
    "Azure DevOpsアカウントの作成とPublisherの登録 / VSCE: VSCodeのExtensionをパッケージングし、MarketPlaceに公開するためのツール + Node.jsとnpmがインストールされていること"
  • JSON SchemaのanyOfをTypeScriptの型で表現する - Qiita

    type AnyOf<T extends any[]> = T extends [infer A, ...infer B] ? A | AnyOf<B> | (A & AnyOf<B>) : never; JSON Schema とは JSON Schema というものを聞いたことがあるでしょうか。 詳細は https://json-schema.org/ を読んでいただければと思いますが、簡単に説明すると JSON をバリデーションする (または 型をつける)もので身近なところでは OpenAPI などのレスポンス型定義などに用いられます。 他にも各種設定ファイルで JSON や YAML を書くときにテキストエディタ上で補完が効くものは内部的に JSON Schema が使われていることがほとんどだと思います。 例: { "type": "object", "properties":

    JSON SchemaのanyOfをTypeScriptの型で表現する - Qiita
    sh19910711
    sh19910711 2024/06/16
    "JSON Schema: JSON をバリデーションする (または 型をつける)もの + 身近なところでは OpenAPI などのレスポンス型定義など / テキストエディタ上で補完が効くものは内部的に JSON Schema が使われている" 2022
  • CodeceptJSにトライしてみた。 - Qiita

    最初に 記事はGitHub: GOAMI-Takaaki/codeceptjs-hotel-planisphereの転記になります。 概要 自動化練習サイト「HOTEL PLANISPHERE」を対象に、Gherkin記法のテストを、CodeceptJS で実装したサンプルコードを紹介します。 対象 サービス HOTEL PLANISPHERE - 自動化練習サイト シナリオ testplanisphere/hotel-example-webdriverio-ja 構成 自動化フレームワーク CodeceptJS + Playwright プログラミング言語 TypeScript テスト記法 Gherkin 環境 ライブラリ Node.js OS WSLg + Ubuntu 22.04.2 LTS 基 CodeceptJS とは E2Eテストフレームワークである。 Node.jsプロジ

    CodeceptJSにトライしてみた。 - Qiita
    sh19910711
    sh19910711 2024/06/16
    "CodeceptJS: E2Eテストフレームワーク + Gherkin記法をサポート / コードが直感的で分かりやすい + 対応しているテストツールが多い + プラグインが豊富 / Gherkin: 自然言語で記述するシナリオ・フォーマットの1つ" 2023
  • 【JavaScript】ここがしんどかったよTauri開発【Rust】 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【JavaScript】ここがしんどかったよTauri開発【Rust】 - Qiita
    sh19910711
    sh19910711 2024/06/15
    "Tauri側のコンセプトがRustを最低限書けばあとはJSを書くだけで動くというのがあるのでしょうが明らかにRust側のサンプルが少なすぎる / WRYで対応していないタグやCSSがあって動かない"
  • ruby.wasmでRubyからJavaScriptのメソッドを呼び出すしくみ - Qiita

    documentのクラスはJS::Objectです。 Rubyではmethod_missingという仕組みがあります。 呼びだされたメソッドが定義されていなかった時、Rubyインタプリタがこのメソッドを呼び出します。 JS.global[:document].querySelectorを呼び出したとき、JS::Object#querySelectorメソッドは定義されていません。 JS::Object#method_missisgメソッドが呼び出されます。 JS::Object#method_missisgメソッド JS::Object#method_missisgメソッドの実装を見てみましょう。 ソースコードは https://github.com/ruby/ruby.wasm/blob/d0e144577f4a947638e9a0d354e12716f10c24a0/ext/js/li

    ruby.wasmでRubyからJavaScriptのメソッドを呼び出すしくみ - Qiita
    sh19910711
    sh19910711 2024/06/15
    "ruby.wasmのJS.globalはJavaScriptのglobalThisを表す変数 / JS.global[:document]でglobalThis.documentと同じオブジェクトが取得できます / wit-bindgenをつかってバインディングの実装を生成" 2023
  • WebAssemblyを利用してJavaScriptアプリケーションのパフォーマンスを向上させる方法 - Qiita

    ウェブアプリケーションのパフォーマンス向上は、ユーザーエクスペリエンスの向上に直結します。そこで、記事ではWebAssemblyを使用してJavaScriptアプリケーションの実行速度を向上させる方法を紹介します。 1. WebAssemblyとは WebAssembly(通称Wasm)は、ウェブで高速な実行を実現するためコードです。。これは、ウェブブラウザ内で実行できる低レベルのバイナリフォーマットであり、JavaScriptの補完として設計されています。WebAssemblyの主な目的は、ウェブでの高性能なアプリケーションの実現を支援することです。これにより、C、C++RustGoなどの言語で書かれたプログラムをウェブアプリケーションで直接実行することが可能になります。 Amazon Prime Videoで動画再生にWebAssemblyを採用されている実例があるようです。 2

    WebAssemblyを利用してJavaScriptアプリケーションのパフォーマンスを向上させる方法 - Qiita
    sh19910711
    sh19910711 2024/06/15
    "AssemblyScript: TypeScriptに似た構文を持つ、WebAssembly向けの言語 + 静的型付けやモダンな構文を提供しつつ、WebAssemblyの特性に最適化されたコンパイラを提供 / 単純な計算では、実行速度の差がほとんど感じられない"
  • Hono[炎]っていうイケてる名前のフレームワークを作っている

    Cloudflare Workersは「CDNのエッジで動く」という特徴だけでなく「サーバーレス」の環境としても非常に優秀です。プロジェクトの作成からデプロイまで「4ステップ」で出来ます。 自動的に {project-name}.{user-name}.workers.dev といったURLを発行してくれて、すぐさま公開されます。この手軽さとスピード感はヤバい。スクリプトのサイズが1MB以内、使えるAPIが極端に限られているなど制約がありますが、それはそれで単一機能のシンプルなアプリケーションを作る気にさせてくれます。 さて、このCloudflare WokersでWebアプリを作っていたのですが、だんだんとCloudflare Workersに特化した「Webアプリを作るためのフレームワーク」を作りたくなってきました。手段の目的化です。ということで作り始めました。「Hono[炎]」という

    Hono[炎]っていうイケてる名前のフレームワークを作っている
    sh19910711
    sh19910711 2024/06/14
    "Cloudflare Workersは「CDNのエッジで動く」という特徴だけでなく「サーバーレス」の環境としても非常に優秀 / だんだんとCloudflare Workersに特化した「Webアプリを作るためのフレームワーク」を作りたくなって ~ " 2022
  • kuromoji.js + UniDic で形態素解析(辞書のビルド) - Qiita

    UniDic の matrix.def のサイズが間違っていたので修正しました: 59G → 5.9G kuromoji.js (日形態素解析器 Kuromoji の JavaScript実装)と React でブラウザアプリを作っています。kuromoji.js はデフォルトでは IPADic (mecab-ipadic-20070801) を利用していますが、IPADic は現時点では更新が止まっており、辞書は新しいのがよい…… ということで、今回は UniDic 最新版(unidic-cwj-202302)を kuromoji.js 用にビルドして使ってみることにしました。 結果として、ブラウザアプリで UniDic 最新版を使って形態素解析を動かすことができました。 ただし、UniDic は IPADic に比べてデータ量が多いことに注意が必要です。パソコンのブラウザ(自分の

    kuromoji.js + UniDic で形態素解析(辞書のビルド) - Qiita
    sh19910711
    sh19910711 2024/06/13
    "kuromoji.js: デフォルトでは IPADic + IPADic は現時点では更新が止まって ~ / UniDic: IPADic に比べてデータ量が多い + スマホでは、トークナイザのロードにめちゃくちゃ時間がかかったあと、形態素解析がうまく動きませんでした"
  • Rust製JavaScriptエンジン『Boa JS』を試してみた

    主要なJavaScriptエンジンのTest262を毎日実行して結果を載せているtest262.fyiというサイトがあります。 (Test262とは最新のECMAScriptを実装できているかどうかのテストです。) このサイトの、2024/6/5現在の実装率ランキングはこちらです。 test262.fyiの画面キャプチャ(2024/6/5) V8(ChromeやNode.js、Deno等)、JavaScriptCore(SafariやBun等)、SpiderMonkey(Firefox等)という、大手エンジンとほぼ横並びで4位にい込んでいるBoaとは何者でしょうか。 Boaは公式曰く『Rustで書かれた実験的なJavascriptのレキサー、パーサー、コンパイラー』です。これだけ揃えば、JavaScriptエンジンと言って差し支えないと思います。RustアプリケーションにJavaScri

    Rust製JavaScriptエンジン『Boa JS』を試してみた
    sh19910711
    sh19910711 2024/06/12
    "ユーザーが自分でJavaScriptを書いて使えるプラグインのような機能を提供したい / Boa: Rustさえあれば、Cargo.tomlに1~数行書くだけで使い始められ + 簡単に組み込める"