Cheerio 1.0 リリース、必要な機能がすべて含まれています 🔋
Cheerio 1.0 がリリースされました! 12回のリリース候補と、最初の1.0リリース候補からわずか7年を経て、ついにCheerio 1.0の完成を宣言する時が来ました。今回のリリースのテーマは「必要な機能がすべて含まれている」ことで、一般的なユースケースがすぐにサポートされるようになりました。
単3電池を用意して、新機能、変更点、およびアップグレード方法について以下をお読みください!
新しいウェブサイトとドキュメント
前回のリリース以降、Cheerioの新しいウェブサイトとドキュメントを公開しました。新しいサイトでは、Cheerioを最大限に活用するための詳細なガイドとAPIドキュメントを提供しています。 cheerio.js.orgでご確認ください。
ドキュメントをロードする新しい方法
Cheerioへのドキュメントのロード方法が刷新されました。Cheerioは、さまざまなユースケースに合わせて調整された複数のロード方法をサポートするようになりました。
load
: HTMLまたはXML文字列を解析する従来のメソッド。loadBuffer
: バイナリデータで動作し、ドキュメントのエンコーディングを自動的に検出します。stringStream
とdecodeStream
: ストリームから直接HTMLを解析します。fromURL
: URLからHTMLを取得して一度に解析します。
これらのメソッドの詳細については、ドキュメントのロードチュートリアルをご覧ください。
簡略化されたデータ抽出
新しいextract
メソッドを使用すると、HTMLドキュメントからデータを抽出し、オブジェクトに格納できます。 GitHubからCheerioの最新リリースを取得し、リリース日とリリースノートをリリースページから抽出するのは、現在では次のように簡単です。
import * as cheerio from 'cheerio';
const $ = await cheerio.fromURL(
'https://github.com/cheeriojs/cheerio/releases',
);
const data = $.extract({
releases: [
{
// First, we select individual release sections.
selector: 'section',
// Then, we extract the release date, name, and notes from each section.
value: {
// Selectors are executed within the context of the selected element.
name: 'h2',
date: {
selector: 'relative-time',
// The actual release date is stored in the `datetime` attribute.
value: 'datetime',
},
notes: {
selector: '.markdown-body',
// We are looking for the HTML content of the element.
value: 'innerHTML',
},
},
},
],
});
利用可能なすべてのオプションの詳細については、データ抽出ガイドをお読みください。
破壊的な変更とアップグレードガイド
Cheerio 1.0には、いくつかの破壊的な変更が導入されており、特に注目すべき点は次のとおりです。
-
最小NodeJSバージョンが18.17以上になりました。
-
インポートパスが簡略化されました。たとえば、
cheerio/lib/slim
の代わりにcheerio/slim
を使用します。 -
非推奨のデフォルトのCheerioインスタンスと静的メソッドが削除されました。
以前は、次のようなコードを書くことができました。
import cheerio, { html } from 'cheerio';
html(cheerio('<test></test>')); // ~ '<test></test>' -- NO LONGER WORKS必ず最初にドキュメントをロードしてください。
import * as cheerio from 'cheerio';
cheerio.load('<test></test>').html(); -
htmlparser2のオプションは、
xml
キーの下にのみ存在するようになりました。const $ = cheerio.load('<html>', {
xml: {
withStartIndices: true,
},
}); -
以前にCheerioによって再エクスポートされたノードタイプは、
domhandler
から直接インポートする必要があります。
変更の包括的なリストについては、変更履歴を参照してください。
Cheerio 1.0へのアップグレード
Cheerio 1.0にアップグレードするには、次を実行するだけです。
npm install cheerio@latest
参加しませんか?
新機能を試して、ご意見をお聞かせください! 問題が発生しましたか? GitHub issue trackerで報告してください。 改善のためのアイデアがありますか? プルリクエストをお待ちしています:)
ありがとうございました
Cheerio 1.0を始動してくれた@jugglinmike、そしてこのリリースの形成に貢献してくれたすべての貢献者に感謝します。 皆様のご協力なしには実現できませんでした。
Cheerioの開発をサポートしてくださるスポンサーとバッカーに感謝します。 職場でCheerioを使用している場合は、会社にサポートを検討してもらうことをご検討ください!
そして最後に、Cheerioをご利用いただきありがとうございます 🙇🙇♀️