2021年になってJavaScript、TypeScript、Node.jsの勉強を始めました。 この記事では、読んで良かった本、記事、公式ドキュメントなどをまとめていきます。 ※2021/03時点の情報です。 個人的なリンク集ですが、「これも読むと良いよ」というものがあればぜひ教えてください。 ECMAScript ECMAScriptの仕様は、EcmaのTC39で策定されている Ecma TC39GitHub organization ep78 TC39 | mozaic.fm Node.jsの各バージョンでのECMAScriptサポート状況JavaScript Misreading Chat - #86:JavaScript: the first 20 yearsJavaScript 二十年の歴史についての回JavaScript チュートリアル | MDNJavaScri
NoBundle ツールの流行: vite / snowpack モダンブラウザは Native ESM を備えているので、開発時は高速なlocalhost アクセスを頼って直接 import する、外部ライブラリだけ事前にコンパイルしておく、という手法が流行ってきている。プロダクション用は今まで通りビルドする。webpack はすべてを一つにバンドルするためにメモリ上にファイルの実体と依存グラフを持っているが、これによりメモリとCPU を圧迫する問題があった。特に巨大なリポジトリではそれが顕著になる。 Nobundle ツールの実装として vite と snowpack がある。 https://github.com/vitejs/vite https://www.snowpack.dev/ vite は使ってみた限り、更新時の差分ビルドが爆速で、明らかに体感が良い。Vue

少し前からライブラリを読むトレーニングを始めたのですが、最近ようやく読み方がわかってきたので、やり始めた頃に知っておきたかったことをまとめます。 これからJavaScript/TypeScript で書かれたライブラリを読んでみようと思っている方の助けになれば嬉しいです。 「私はこういう道具を使ったり、こういう工夫をしています」みたいな感じの内容ですので、もし「もっといい読み方があるよ」みたいなのがありましたらIssueなどで教えていただきたいです。 (※ライブラリを読むにあたって、ブラウザの話と NodeJS の話があるのですが、似てる点がほとんどなのでごった煮します。) エントリポイントを探す ライブラリを読むにあたって そのライブラリが持つ module がどう協調して全体が作られるのか その関数は正確にはどういう挙動をするのか などを考えると、ユーザーから渡された入力や呼び出しが

近年の Node.js はAPI のサーバとしてはもちろん、Nuxt.js やNext.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、本記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js

Repeated ToC violations by an authority figure went unaddressed. TSC members left. Node has been forked: https://t.co/OzFOgD3hCl — ms claws (@alicegoldfuss) August 22, 2017 A committee at the Node.js project voted 60% in favour of allowing a developer to stay on with the project. The vote put forward to the committeenoted some violations of the Code Of Conduct. The fact there was a vote means tha

gulp なしの Webフロントエンド開発から 1 年あまり。その間、特に問題もなく npm-scripts で Webフロントエンド開発を管理できているので、この間に得られた運用知見や所感などをまとめてみる。 npm-scrips とは? 最近の Webフロントエンド開発では AltJS/AltCSSのビルドやリリース用イメージ作成などに Node.js + npm を利用することが一般化してきた。そのためプロジェクトは package.json で管理することになる。package.json の提供する代表的な機能としてプロジェクト情報の定義プロジェクトの成果物を npm として配布するための情報プロジェクト名、バージョン、作者などのメタデータを定義する 依存モジュール管理プロジェクトが依存する npm とバージョンを管理する この情報へ基づき npm install コ
https://www.npmjs.com/package/what-do-i-depend-ongithub.com 先日のleft-pad騒動で、自分のプロジェクトのnode_modulesを慌ててチェックした。 普段依存の依存とかまったく意識してないけど、いざ見なおしてみるとその数の多さにビックリする。 全ての依存を把握するのは正直無理だけど、ざっと見てみるだけでも発見がある。 意外とscoped packageが使われてたり。めちゃくちゃミニマルなパッケージが人気だったり。 babel関係のパッケージが多すぎて目眩がしたり。 というわけで、自分のプロジェクトの依存パッケージを再帰的に調べて、依存度合いをチェックするツールを作った。 node_modules/ 内の package.json を再帰的に調べて、パッケージが登場した回数を表示する。 使い方 インストール npm i

"use strict"; function f(n){ if (n <= 0) { return "foo"; } return g(n - 1); } function g(n){ if (n <= 0) { return "bar"; } return f(n - 1); } return f(1e6) === "foo" && f(1e6+1) === "bar";
npm はパッケージ依存管理ツールであると同時に、便利なタスク・ランナーです。本体はごく基礎的な機能だけを持ち、npm が管理するパッケージと Shell の力を組み合わせてタスクを定義します。「npm-scripts で利用する CLI コマンドは npm で管理できる」という分かりやすさが気に入っています。 npm-scripts には以下の特徴があります。 多くのツールが CLI を持っているためにラッパープラグインが不要です。Gulp ラッパー プラグインは非公式であることも多く、メンテナンスが継続するか不安な場合があります。 簡潔です。Gulp で書くと数十行だった処理が数行になるなんてこともよくあります。 複雑なことをするには向いていないです。 環境変数の扱いに難があります。 この記事では、私が npm-scripts を書くときによく利用している便利ツールたちを紹介します。

slide.md Node.js 入門 清水俊博(@meso) 株式会社ドワンゴ技術コミュニケーション室 Node.js 日本ユーザグループ Node.js とは何か Webブラウザ外で動作する、ノンブロッキングI/O環境上に構築されたJavaScriptの実行環境(プラットフォーム) いわゆる"サーバサイドJavaScript"の1つ サーバサイドJavaScript Node.js 以外にも従来からいくつも存在Netscape Enterprise Server, IIS+JScript, Helma Aptana Jaxer, Narwhal, RingoJS 流行らなかったJavaScriptがしっかりしたプログラミング言語として認められてなかった時代 「別にサーバサイドまでJavaScript使いたいと思わないんだけど」で玉砕 Node.jsの目的は「サーバサイドでJava

JavaScriptは流れが早いと言われますが、その流れをどう捉えるかの一つの要素として使える素振りの話です。 流行り廃れが早いのはちゃんと循環してるということなので問題ないですが、 トレンドと言われるものの半分ぐらいは誰かの主張にすぎない事があります。 そのため、主張だけを見て判断しないで中身を見て確認する必要があります。 自分はJSer.infoというJavaScriptの情報サイトを2^8週間ほど継続してやっています。(5周年記念イベントを1/16(土)にやります) JSer.infoで紹介するものは何かしらの方法でその主張がおかしくないかの確認をとります。 売り文句は素晴らしいが中身を見た時におかしな部分や問題がありそうなら、そこで引き返して追わないという判断もします。 仮にそこで引き返した事が間違えであっても、それが素晴らしいものなら別の誰かがそういう主張を書いてくれるはずなので

Node.js v4リリースに向けて とうとうメジャーバージョンアップにされたNode.jsである、Node.js v4がリリースされました。今回はこのNode.js v4がこれまでのNode.js v0.12やv0.10と比較してどう違うのかを解説します。また、最新ではv5もリリースされていますので、合わせてお伝えしていきます。 なんでいきなりv4なのか おそらく一番最初に抱く感想は、v0.10とかv0.12みたいな数字からv1.0を飛ばして、なんでいきなりv4.0がリリースされたのかという疑問だと思います。これにはio.jsというプロダクトが関係しています。 2014年の年末、io.jsというプロダクトが発表され、2015年の初めにv1.0がリリースされました。io.jsというのは Node.js のforkで別リポジトリによって実装されたプロダクトです。io.jsの詳細は筆者のブログ

最近、新しいMacbookProにNode.jsを入れることが2回もあったため、ものすごく今更な話題ではありますがその時の手順のメモを残します。 Node.jsのパッケージをそのまま入れるとプロジェクトごとにバージョンが違っていたり等諸々面倒なことがあるので、後にトラブルにならないよう、バージョン管理出来る環境にすることをオススメします。なお、Node.jsのバージョン管理にはnodebrew を使用し、インストールするのにHomebrew を使用します。本記事ではHomebrew を経由してnodebrew をインストールし、nodebrew からNode.jsをインストールする手順を解説します。文章にするとややこしく見えますが、インストール自体はとても簡単なので、Node.jsをバージョン管理していない方は是非この機会にお試しください。 また、既にNode.jsのパッケージ版の方をイ

Node.js v5.0 がリリースされました!! 今回はどちらかと言うと機能面というより、 Node.js v5.0 の位置づけを中心に解説したいと思います。 機能面も一応載せますが、学園祭前で時間があまり作れないので、さくっと終わらせます。 機能面での変更 ES2015の文法追加 Spread operator が追加 Spread operator が追加されました。 これまで配列をJavaScriptの関数に引数に展開して渡す場合、以下のように記述する必要がありました。 function f(x, y, z) { console.log(x); console.log(y); console.log(z); } var args = [0, 1, 2]; f.apply(null, args); この書き方はあまり直感的じゃなく、また new 演算子と併用できないという問題があった

テスト書いてないとかお前そ(ry すみません、言ってみたかっただけです。 そして本記事は、巷で話題のAdvent Calendarとも何の関係もありません。 来年こそは書いてみたい! そもそも こんなたいそうなタイトルの記事ですが、 書いてる人がそもそもテストに関してぺーぺーなので、なんか変なコト言ってたら教えてください。 まず、根本的に勘違いしてたことがあるので、まずそれを記しておきます。 ※今思えば個人の勝手な勘違いです。 巷で話題のpower-assertですが、これだけ使えばもうテスト全ておっけー!ってものではないです。 そして、サクッと入れてサクッと使えるってものでもないです。 よーわからんけどテスト書いた方が良いって最近よく聞くし、 power-assertってのがとりあえずイケてるらしいから、それ使ってテストデビューしてみようかな・・って人。 それなりに前提知識がないと辛いで
The document discusses an Electron (formerly Atom Shell) meetup.It provides links to documentation on the differences between Electron and Node-webkit. If time permits, an Electron demo may be shown. Electron allowsbuilding cross-platform desktop apps usingJavaScript,HTML, andCSS byembeddingChromium and io.js.It also references a presentation onembedding Node.js into the Atom editor.
ReactとMaterialUIを組み合わせると、それだけでBrowserifyで結合したJavaScriptファイルが1MB超えてしまうので、やっぱり圧縮とかした方が良いのかな―と思い、やり方を調べてみました。 ※2015/08/03更新 Licensifyを開発された @t_wada さんから改良の連絡をいただいたので、Licensifyの最新版1.4.0をもとに内容を更新しました。 Licensify - Nodeモジュールのライセンスコメントを生成する JSファイルを圧縮すると、ライセンスが記載されているコメントが消えてしまうという問題があるということで、本題の前に、Browserifyと組み合わせて、読み込んだNodeモジュールのライセンスコメントを生成してくれる Licensify を試しておくことにしました。 インストールはnpmから。 $ npm install lice

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く