タグ

JavaScriptとJavascriptに関するKesinのブックマーク (123)

  • axios は v1.0.0 でどう変わるのか

    概要 記事は、HTTP クライアントライブラリである axios の v1.0.0 が満を持してリリースされたため、何がどう変わったのか、マイグレーションしても良いのかについて個人的に調べてまとめた結果になります。 TL;DR axios の v1.0.0 は、パッケージのモダン化に向けた節目としてのバージョンともいえる v1.0.0 では多数のバグ修正と、いくつかの小規模の機能追加がまとめて取り込まれた 破壊的変更や非推奨化は少なからずあるが、基的な使い方や挙動を大きく変える規模の変更はない 一方で劇的に良くなる変化もないので、急いであげる理由もない 公式マイグレーションガイドは記事執筆時点では提供されていない axios について axios は、JavaScript 向けの HTTP クライアントライブラリの一種で、この種のパッケージとしては比較的古くから普及している老舗ライブラ

    axios は v1.0.0 でどう変わるのか
  • 実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog

    Wantedlyではこのたび、フロントエンドアプリケーションのひとつをNative ESM化しました。記事ではNative ESM化の必要性と、必要な作業について説明します。 この記事の概要Node.jsにはNative ESMというモードがある。Native ESMはまだ普及していないが、ライブラリ側の更新が進み、移行が必要になりつつある。Native ESMをめぐる状況は (この記事の長さからわかるように) 色々複雑で、概念をちゃんと説明するだけでも大変。Native ESMへの移行にあたってはさまざまな困難が待ち受けている。Native ESMとは歴史的経緯から、JavaScriptには複数のモジュールシステムがあります。そのうちNode.js周辺でよく使われるのはCommonJS ModulesとES Modulesです。 CommonJS Modules (CJS) は実質的に

    実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog
  • 正式仕様リリース! JavaScriptの最新仕様ES2022で追加された「全」新機能

    JavaScriptの仕様はECMAScriptで、ECMAScript 2015(ES2015)、ECMAScript 2016(ES2016)...というように毎年進化を続けています。 これまでの仕様はES2021でした。 日6月22日、ES2022は正式仕様として承認され、ES2022が最新仕様となりました。 22.06.2022 Ecma International approves new standards - Ecma International ブラウザ対応も完了しており、全モダンブラウザ(Google Chrome・Firefox・Safari・Microsoft Edge)でES2022の全機能が使えます。 記事では、ES2022すべての新機能を紹介します。「何が使えるようになったのか?」「どうしてそれが必要だったのか?」が、できるだけわかりやすいように解説しました

    正式仕様リリース! JavaScriptの最新仕様ES2022で追加された「全」新機能
  • TypeScript 4.5 以降で ESM 対応はどうなるのか?

    記事で記述した Node.js ESM 対応は2022 年 5 月に TypeScript 4.7 で正式版としてリリースされました。 記事の内容との差分はmodule:node12がmodule:node16に変更されたことぐらいです。node16では top-level await が使え、現時点ではnodenextとの差分はありません。 他に関連する機能としてresolution-modeや--moduleDetectionが追加されましたが、一般利用者が意識することはないでしょう。 先日リリースされた TypeScript 4.5 Beta で、待望の Node.js ESM 対応がアナウンスされました。 その後、ユーザーからのフィードバックを経て、TypeScript チームは TS 4.5(11/16 リリース予定)では ESM 対応を stable リリースせず、Nigh

    TypeScript 4.5 以降で ESM 対応はどうなるのか?
  • A developer productivity tooling platform. | moonrepo

    For repositories with multiple projects, any number of languages, and team members constantly pushing changes, moon will help simplify the experience of working in and maintaining a complex monorepo. Learn more about moon

    Kesin
    Kesin 2022/06/18
    今となってはNxやTurborepoに対して明らかな優位点がないと厳しい気がするけどどうなのだろう
  • Monorepos in JavaScript & TypeScript

    This is a comprehensive tutorial on Monorepos in JavaScript and TypeScript -- which is using state of the art tools for monorepo architectures in projects. You will learn about the following topics from this tutorial. I've become passionate about monorepos, as they've transformed how I approach my work as a freelance developer and contributor to open-source projects. When I first adopted monorepos

    Monorepos in JavaScript & TypeScript
  • Node.js の原罪 - from scratch

    Intro ちょうどタコピーの原罪が流行ってるのでこのタイトルにしたけど結構気に入ってる。 d.potato4d.me この話を読んでの感想とここまで大きくなった Node.js の振り返りをしようと思う。 どんなプログラミング言語であってもみんなから使ってもらって開発者をハッピーにしたいと思ってる。ただ最初は良かったと思ってた機能がなんか古臭くなったり、他にクールな機能を持ったものが登場したことによって徐々に飽きられていき、最終的に他の言語に乗り換えられる。 まぁどんな言語も同じだと思う。C言語だって生まれた当初はすごくクールでみんなをハッピーにしてた。今丁度「戦うプログラマー」を読んでるが、C++が出てきて、周りのエンジニアC++ を使おうとするシーンが出てくる。そこで、「あんなの使って何が良いんだ、Cで十分だろ」とWindows NT 開発リーダーのデーブカトラーが言ってたりする

    Node.js の原罪 - from scratch
    Kesin
    Kesin 2022/04/08
    こういう技術の歴史を振り返るの好き
  • GitHub - lerna-lite/lerna-lite: Subset of Lerna in a smaller & more modular project. Help manage and publish multiple packages in a monorepo/workspace structure

    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

    GitHub - lerna-lite/lerna-lite: Subset of Lerna in a smaller & more modular project. Help manage and publish multiple packages in a monorepo/workspace structure
    Kesin
    Kesin 2022/02/22
    npmがworkspaceに対応したのでLernaはもういらないかもと思っていたけど、リリースフローは確かに便利だったんだよな。他にも選択肢はあるけどこれも覚えておく
  • Lage

    Never build the same code twiceGive your monorepo the smarts to actually save you time Get Started Seriously, never build more than onceBuilding once is painful enough! Lage will remember what is done before and skip any work that is not needed. Lage even skips the work based on your changes… really!

    Kesin
    Kesin 2022/02/11
    MS製のjs monorepo用ビルドツール。機能もカスタム性も少なそうだけどリモートキャッシュはサポートされているし、ビルドのための記述量も多くなさそうなのでlernaあたりからの乗り換え先として良さそう
  • yarn と npm の栄枯盛衰

    yarn と npm の栄枯盛衰2021 年 8 月に yarn の v3 がリリースされました。2020 年の同月あたりに yarn v2 がリリースされたので、約 1 年ぶりのメジャーバージョンアップになります。 v1 → v2 のパラダイムシフトは強烈でしたが、 v2 → v3 は berry というパッケージ名は相変わらずで、 v2 の正統なバージョンアップでありちょっとだけ物足りなさを感じてます。 Get Started なにはともあれ、とりあえずは触ってみましょうか。 Node.js ≥ 16.10 であれば、 Corepack を使って以下のコマンドで yarn v3 をインストールできます。 $ corepack enable $ corepack prepare yarn@3.0.0 --activate # yarn.lock や README.md が生成される $

    yarn と npm の栄枯盛衰
    Kesin
    Kesin 2022/02/01
    yarnが出た時代はたしかにnpmが微妙だった。その後に改良されたことで自分の場合はyarnじゃなくても大体問題なくなった
  • JSer.info 10周年: JavaScript情報の集め方、書き方、まとめ方

    JSer.infoは2011年1月16日に公開したJavaScriptの情報サイトで、2021年1月16日で公開してからちょうど10年です。 JSer.infoでは、10年間で10201サイト紹介し、522コの記事書いてきました。 JSer.infoの紹介したサイト数(累計)。ソース 10年間途切れることなく毎週更新していて、月別の記事数は毎年同じ推移です。 JSer.infoの月別の記事数。ソース この記事では、10年間やってきたJSer.infoの目的を振り返り、 JavaScriptの情報の集め方、書き方、まとめ方について書いていきたいと思います。 ⚠️ すべてを書いているのでものすごく長いです。 この記事やJSer.infoに関する意見や感想などは、次の場所に書いてください。 この記事をTweetする Twitter: #jserinfo GitHub Issue: JSer.in

    JSer.info 10周年: JavaScript情報の集め方、書き方、まとめ方
  • [TypeScript]モノレポ管理ツール比較検討

    モノレポ管理のツールを検討したときのメモ Background 自分が所属するチームで開発する JavaScript/TypeScript のプロダクトが増えてきて、同じような内容のリポジトリがいくつも存在している(n個とする)。 変更を加えていくにつれて、それぞれの差分が大きくなり、以下のような問題が発生する。 開発が止まっているプロジェクトの構成が古くなり、修正コストが発生する 開発が複数同時進行している場合、同じような実装を手動で同期する必要がある これらは共通の基盤等があれば効率的に(理想的にはn分の1の労力で)開発が可能であり、将来的なコストを考えると、いまのうちにその仕組みを考えておきたい。 Proposed Solutions 要件は以下 複数のパッケージをnpmとしてpublishできる アプリケーションも管理できる Nx, Rush, Lerna を主要な選択肢としている

    [TypeScript]モノレポ管理ツール比較検討
    Kesin
    Kesin 2021/09/16
    "マイクロソフトという聞いたことのない企業が開発している" / Rushは知らなかったので見てみようかな
  • JavaScriptのIterator / Generatorの整理

    目的と対象読者 IteratorとIterableとGeneratorとGenerator Functionの区別が曖昧な人 (記事前半) Generatorの制御フローを完全理解したい人 (記事後半) の理解を深めるための記事です。 まとめ IteratorとIterableの関係 Iteratorは狭義には呼び出し元の next 呼び出しに応じて要素を出力するインターフェースである。 IterableはIteratorを生成するインターフェースである。 IterableだからといってIteratorとは限らず、IteratorだからといってIterableとは限らない。しかし実際には多くのIteratorはIterableのインターフェースも実装している。 Iterableとコレクションは相互変換可能である。 Iterableは for-of ループで処理できる。 IteratorとG

    JavaScriptのIterator / Generatorの整理
    Kesin
    Kesin 2021/09/15
    generatorを自分で作ったことはほぼないのだけど、コード読む時に知らないと読めないので一応知識として覚えておきたい
  • LernaとYarn WorkspacesでMonorepo管理 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、フロントエンドエキスパートチームの小林(@koba04)です。 記事では、Lerna と Yarn Workspaces を使った Monorepo 管理について解説します。 Monorepoとは 記事では、単一のリポジトリで複数のモジュールやパッケージ(今回の場合は npm パッケージ)を管理する手法を Monorepo と呼んでいます。 有名なところだと、Babel や Jest、Create React App などが後述する Lerna を使い複数パッケージを単一のリポジトリで管理しています。 他にも React も Lerna は使っていませんが単一リポジトリで複数パッケージを管理しています。 また、上記のようなライブラリ以外にも企業で利用している npm パッケージを Monorepo として管理している例もあります。下記は Shopify の例です。 pack

    LernaとYarn WorkspacesでMonorepo管理 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • vscode-eslint v2 - Qiita

    Microsoft が自ら提供している Visual Studio Code の ESLint 拡張 (vscode-eslint) がメジャー バージョンアップして、その設定方法が大幅に変わったのでまとめてみます。 ESLint の自動修正を保存時に自動的に適用するための設定 v1 で提供されていた eslint.autoFixOnSave 設定は廃止され、代わりに editor.codeActionsOnSave または editor.formatOnSave を利用します。言い換えると、vscode-eslint 独自の方法で保存時の処理を実施していたのが、Visual Studio Code の標準的な方法で実施するように変更されたわけですね。2 つありますが、editor.codeActionsOnSave のほうが推奨されています。 editor.codeActionsOnSa

    vscode-eslint v2 - Qiita
  • MarkdownやAsciidoc中に書いたJavaScriptのサンプルコードをdoctestするツールを作った

    技術書、ブログ、READMEを書いてていて、文章中に出てくるコードブロックのコードをテストしたいことがあると思います。 そのサンプルコードが当に動いてるのか不安になることがあるからです。 power-doctestは、そのコードブロック中のコードにコメントを入れるだけでテスト可能にするツール群です。 power-doctestの例 具体的な例から見ていきます。 次の例では、Markdownで説明とJavaScriptのコードブロックを書いています。 デフォルト引数を使って書くことで、このような挙動は起きなくなるため安全です。 デフォルト引数では、引数が渡されなかった場合のみデフォルト値が入ります。 ```js function addPrefix(text, prefix = "デフォルト:") { return prefix + text; } // falsyな値を渡してもデフォルト

    MarkdownやAsciidoc中に書いたJavaScriptのサンプルコードをdoctestするツールを作った
  • JavaScript Package Manager 2019

    Node学園で発表した JavaScript Package Manager の話です。

    JavaScript Package Manager 2019
  • SPAにおける状態管理:関数型のアプローチも取り入れるフロントエンド系アーキテクチャの変遷|ハイクラス転職・求人情報サイト アンビ(AMBI)

    こんにちは、小林(@koba04)です。 記事では、シングルページアプリケーション(以下、SPA)における状態管理について解説します。 GmailやTwitterは、SPAとして構築されている代表的なWebアプリケーションであり、スムーズなページ遷移をSPAによって実現しています。またElectronやPWA(Progressive Web Apps)の登場により、複雑なアプリケーションをWebの技術を使って構築する場面も増えてきました。 これらの複雑なアプリケーションにおいては、既存のページ単位での状態管理の考え方では対応が難しくなります。 そこで今回は、具体的なフレームワークも取り上げながら、Webフロントエンドにおける状態管理のアプローチについて紹介します。 フロントエンドでの状態管理の複雑化 ページの単位を超えた状態の保持 モデルとビューによる処理の分割 イベントの管理が複雑にな

    SPAにおける状態管理:関数型のアプローチも取り入れるフロントエンド系アーキテクチャの変遷|ハイクラス転職・求人情報サイト アンビ(AMBI)
    Kesin
    Kesin 2019/05/26
    歴史だ
  • An Overview of JavaScript Testing in 2020

    (Updated on: 21.11.2021) This guide is intended to catch you up with the most important reasoning, terms, tools, and approaches to JavaScript testing for the year 2022. It combines information from the best articles recently released (they are referenced at the bottom) and adds from my own experience. It’s a little long but whoever reads and understands this guide, can safely assume they know the

    An Overview of JavaScript Testing in 2020
    Kesin
    Kesin 2019/04/01
    ユニットテストから画像回帰テストまでツールやフレームワーク全部の紹介。ボリュームがすごい
  • モダンフロントエンドエンジニア勉強会を、お試し開催してみた|erukiti

    フロントエンド技術は、ある時期を境に爆発的進化を遂げて、面白く・DX(開発者体験)の良い世界に発展しています。 DXはDeveloper eXperienceの略で、2017年くらいから話題になっているようです。(正しい起源はわかりませんが、雑に検索した限りは、2017年のMediumやdev.toでの英語記事がヒットします) DXに関して日語での記事は「DX: Developer Experience (開発体験)は重要だ」を読むとわかりやすいと思います。 ウェブ技術をやっている人の中で、バックエンド側しかまだ触ってない、JavaRubyPHPのような言語でしかウェブに触れてない人は多く、そういった人に、今のフロントエンド情勢ってこんな感じだよ!って知ってもらいたいという思いがあり、都内の某所にある「ラボ」でモダンフロントエンドエンジニア勉強会というのをお試しで開催してみました。

    モダンフロントエンドエンジニア勉強会を、お試し開催してみた|erukiti