Fork me on GitHub

2018-01-02のJS: npmのパッケージ名のルール変更、gulp 4.0.0プレリリース、Babel 7の変更予定

Edit on GitHub 編集履歴を見る

JSer.info #364 - The npm Blog — New Package Moniker rulesという記事では、npmが受け付けるパッケージ名のルールが変更されたことについて書かれています。

今までは、パッケージ名の., _, -の違いを区別し、別のパッケージであるものとして受け付けていました。
しかし、これからは., _, -は含められますが、それらの違いを区別しなくなりました

たとえば、react-nativeというパッケージが公開されている場合に、次のような名前のパッケージは公開(publish)できなくなります。

  • reactnative
  • react_native
  • react.native

この変更によりパッケージ名に使える名前は減りますが、代わりに現在はScoped module(@user/package)として名前空間を分けることができます。そのためScoped moduleを使ってパッケージを公開するで、引き続き一意な名前で公開できます。


gulp 4.0.0がプレリリースされています。
次のように@nextを指定することでインストールできます。

npm install gulp@next

gulp.resetの削除、gulp.taskの引数の変更。
gulp.seriesgulp.parallelgulp.treegulp.registryの追加。

今までは、gulp.taskの第二引数で依存のTaskを定義していました。

gulp.task('default', ['del'], function() {
    // default task code here
});

gulp 4.0.0からは、gulp.seriesなどを使い依存を含めたTaskを定義します。

gulp.task('default', gulp.series('del', function() {
    // default task code here
}));

詳しくはドキュメントが公開されています。

現在このドキュメントの更新なども行われていて、gulp 4の正式リリースはこのドキュメントの修正やマイグレーションガイドなどが用意できたら行うようです。


Nearing the 7.0 Release · Babelという記事ではリリースが近づいてきているBabel 7の変更点について書かれています。

Babelプラグインの最新のECMAScript仕様への追従や@babel/*へのScoped moduleへの変更、ECMAScript Proposalに関するパッケージ名のルール変更などについて書かれています。

また、前回のPlanning for 7.0 · Babelから変更点についても書かれています。
当初はDeprecate env option in .babelrcのようにenvオプションを非推奨とする予定でしたが、この変更は撤回されています。
併せて、今まではclass MyArray extends Array{}のようなビルトインオブジェクトの継承は動かない変換が行われていましたが、Add support for extending builtinsによってサポートされるようになります。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


The npm Blog — New Package Moniker rules

blog.npmjs.org/post/168978377570/new-package-moniker-rules

npm news security

npmにパッケージをpublishする際のルールが変更された。
パッケージ名に含まれる.-_の違いによる区別をしなくなった。
react-nativereact.nativeを同じものとして扱い、タイプミスを狙った類似パッケージの公開を防止する目的。


Introducing Hyperapp 1.0 🎉 – Jorge Bucaran – Medium

medium.com/@JorgeBucaran/introducing-hyperapp-1-0-dbf4229abfef

JavaScript library ReleaseNote

hyperapp 1.0.0リリース。


Release v4.0.0 · gulpjs/gulp

github.com/gulpjs/gulp/releases/tag/v4.0.0

gulp ReleaseNote

gulp 4.0.0プレリリース。
npm install gulp@nextでインストールできるように。
gulp.resetgulp.taskの第三引数の削除。
gulp.seriesgulp.parallelgulp.treegulp.registryの追加。
gulpgulp-cliの分離など


Ember.js - Ember 2.18 and 3.0 Beta Released

emberjs.com/blog/2018/01/01/ember-2-18-released.html

Ember ReleaseNote

Ember 2.1.8と3.0βリリース。
Ember 3.0ではIE 9, 10のサポート終了、2.xで非推奨となった機能の削除され、それらはember-2-legacyアドオンにポートされる。


Neutrino: Releasing v8 🎉 – Eli Perelman – Medium

medium.com/@eliperelman/neutrino-releasing-v8-a643f356f410

JavaScript Tools ReleaseNote

JavaScriptの開発環境セットアップツールのNeutrino v8.0.0リリース。
モジュールを@neutrinojsのScoped moduleへ移行、@neutrinojs/libraryなどのコアミドルウェアの追加、複数ページのアプリへの対応など


アーティクル


Performance Calendar » Performance insurance

calendar.perfplanet.com/2017/performance-insurance/

performance Tools JavaScript browser

パフォーマンス関係のツール紹介記事。
ファイルサイズチェック、ファイル分割チェック、LightHouse、モニタリングサービスなど


Christmas Gifts for Your Future Self: Testing the Web Platform ◆ 24 ways

24ways.org/2017/testing-the-web-platform/

WebPlatformAPI testing article browser

ウェブ標準におけるテストについて。
Web Platform Testsでのテストの見かた、コントリビュート方法やテストの書き方についてなど


Nearing the 7.0 Release · Babel

babeljs.io/blog/2017/12/27/nearing-the-7.0-release

babel article

Babel 7の変更予定について


ResizeObserver による変更検知と Element Query | blog.jxck.io

blog.jxck.io/entries/2017-12-30/resize-observer-and-element-query.html

WebPlatformAPI JavaScript

ResizeObserverについての解説記事。
要素のリサイズを監視するObserver API


Profiling adventure - Qiita

qiita.com/martinheidegger/items/5a5c40770ef6f47a92b2

node.js performance debug article

Node.jsでperf_hooksを使ったプロファイル、Node.jsの--profフラグを使ったより詳細なダンプデータのとり方。
また--inspect-brkを使いChromeの開発者ツールを使ってのデバッグについて


JavaScript のスレッド並列実行環境

nhiroki.jp/2017/12/10/javascript-parallel-processing

Chrome JavaScript webworker article

JavaScriptにおけるスレッド関係の機構について。
タスクキュー、Web Workerのモデル、スレッド間のメッセージング、データのコピーと移譲(Transferable)、SharedArrayBuffer、Agentの共有メモリモデル。 Worklet/Tasklet、Web Locks、Thread APIについて


Getting Started with Jest and Puppeteer – Noteworthy — The Journal Blog

blog.usejournal.com/getting-started-with-jest-and-puppeteer-7cf6c59a2cae

JavaScript Chrome E2E testing

JestとPuppeteerを使ったテストの設定や書き方について


サイト、サービス、ドキュメント


tbfleming/cib: clang running in browser (wasm)

github.com/tbfleming/cib/

JavaScript WebAssembly Clang C++

clangclang-formatをJavaScriptにコンパイルし、ブラウザ上でclangを使ってC++をWebAssemblyへコンパイルして実行するデモ


ソフトウェア、ツール、ライブラリ関係


anseki/leader-line: Draw a leader line in your web page.

github.com/anseki/leader-line

JavaScript SVG library

指定要素同士を矢印で繋いだり、指定要素への矢印とキャプションを描画できるライブラリ。


whoeverest/wsrun: Command runner for Yarn workspaces. Dependency aware.

github.com/whoeverest/wsrun

yarn Tools

Yarn workspace向けのツール。
lerna runのようにそれぞれのパッケージに対してコマンドを実行できる


keithamus/sort-package-json: Sort an Object or package.json based on the well-known package.json keys

github.com/keithamus/sort-package-json

Tools node.js

package.jsonのフィールドをソートするツール


書籍関係


JavaScript のスレッド並列実行環境

nhiroki.jp/2017/12/10/javascript-parallel-processing

Chrome webworker JavaScript

JavaScriptにおけるWebWorkerやSharedWorker、Workletなどのスレッドの仕組みについてや違いについて。
また検討されているWeb Locks APIやThread APIについて


この記事へ修正リクエストをする
JSer.info Slackに参加する