並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 152件

新着順 人気順

Babelの検索結果81 - 120 件 / 152件

  • jsのimportとrequireの違い - Qiita

    はじめに jsで外部ファイルを読み込む際に、 importと書いてある場合とrequireと書いてある場合があります。 この2つの違いがよくわからなかったので確認しました。 モジュールとは importとrequireの違いを確認する前に、 前提知識となる「モジュール」について簡単に説明します。 ある程度の規模のjsアプリを作ると、 1つの大きなjsファイルにすべてのコードを書くのではなく 機能ごとにjsファイルを分けて管理したくなります。 そして、その機能ごとに分割したjsファイルを メインとなるjsファイルで必要に応じて読み込んで利用するイメージです。 この分割した機能ごとのjsファイルを「モジュール」と呼びます。 モジュールの読み込み方法 モジュールを読み込むための方法、仕様は 何種類かあり、 それぞれ書き方が違い、動く環境も違います。 そのモジュール読み込みの仕様の主要なものとして

      jsのimportとrequireの違い - Qiita
    • @babel/preset-env (Babel 7)をハンズオンでちゃんと理解する

      @babel/preset-env とは @babel/preset-env は、 babel プラグインのプリセットのことです。 そもそも babel の本体(@babel/core)は、「JSコードを入力として受け取り、ASTに変換後、何らかの変換処理を行い、変換後のASTから再度JSコードを出力すること」が責務であり、 何らかの変換処理を指定しなければ、何のトランスパイルも行われません。 この 何らかの処理 に該当する実装がbabelプラグインのことで、開発者は実現したいトランスパイルに応じて適切な babel プラグインを適用する設定を記述する必要があります。 ...でも面倒ですよね? 単純にIEを含む主要なブラウザで一通りのES6コードを動かしたいだけというのがだいたいのユースケースです。 そんな時、対応ブウラウザなどの大雑把な情報を元に、必要なプラグインを自動で選択して、最新の

        @babel/preset-env (Babel 7)をハンズオンでちゃんと理解する
      • Prettier 2.3 で TypeScript 4.3 をフォーマットする

        { "overrides": [ { "files": "*.ts", "options": { "parser": "babel-ts" } } ] } Configuration Overridesを使って、.tsファイルをフォーマットするときにbabel-tsパーサーを使うようにしています。 Prettier はデフォルトではtypescriptパーサーを使います。このtypescriptパーサーは、@typescript-eslint/typescript-estreeに依存しています。Prettier2.3 リリース時にはまだ@typescript-eslint/typescript-estreeは TypeScript 4.3 に対応していなかったので、Prettierはデフォルトのパーサーでは TypeScript 4.3 の新機能をフォーマットすることができません。 明示的

          Prettier 2.3 で TypeScript 4.3 をフォーマットする
        • 7.14.0 Released: New class features enabled by default, TypeScript 4.3, and better CommonJS interop · Babel

          Babel 7.14.0 is out! This release enables class fields and private methods by default (they were promoted to Stage 4 during the recent April TC39 meeting!) and adds brand checks for private fields and static class blocks to @babel/preset-env's shippedProposals option. We added support for Stage 1 async do expressions (using @babel/plugin-proposal-async-do-expressions), which extends the Stage 1 do

            7.14.0 Released: New class features enabled by default, TypeScript 4.3, and better CommonJS interop · Babel
          • 新しい JSX トランスフォーム – React Blog

            日本語版サイト (ja.reactjs.org) のブログセクションへの記事掲載には英語版サイトと比べてタイムラグがあります。 最新のブログ記事は英語版でご確認ください。 日本語版サイトでは英語版ブログに定期的に追従しつつ、2020 年以降の記事を随時翻訳しています。 React 17 には新機能はありませんが、新バージョンの JSX トランスフォーム (JSX transform) に対応します。この記事ではこれがどのようなもので、どのように試せるのかについて説明します。 JSX トランスフォームとは? ブラウザはそのままでは JSX を理解しないため、ほとんどの React ユーザは、Babel や TypeScript のようなコンパイラを利用して JSX コードを通常の JavaScript に変換 (transform) しています。Create React App や Next

              新しい JSX トランスフォーム – React Blog
            • 2023-09-29のJS: Babel v7.23.0、Vike、State of HTML 2023受付開始

              JSer.info #662 - Babel v7.23.0リリースされました。 7.23.0 Released: Decorator Metadata and many new import features! · Babel Stage 3のDecorator Metadataのサポート、Stage 3のimport sourceのサポートが追加されています。 Stage 2のimport deferのサポート、Stage 1のOptional Chaining Assignmentのサポート、TypeScript 5.2のサポートされています。 またBabel 8がαリリースされています。 変更点やアップデート方法については、マイグレーションガイドが公開されています。 Upgrade to Babel 8 · Babel ReactやVueなどに対応したNext.jsやNuxtのよう

                2023-09-29のJS: Babel v7.23.0、Vike、State of HTML 2023受付開始
              • インターン成果発表資料 / サイボウズ・フロントエンドエキスパートコース

                Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM

                  インターン成果発表資料 / サイボウズ・フロントエンドエキスパートコース
                • JavaScript や CSS で ~/ から始まるパスをマッピングして import する方法 2020

                  この記事では、マッピングする方法について述べるだけで、それに伴う仕様や実装方法などについては言及しません。 TL;DR import util from '~/util'; のように ~/ から始まるパスにしたとき、 src ディレクトリからの相対パスとしてマッピングするには、2020 年 12 月現在、次の方法があります。 Parcel もしくは Nuxt.js を使う場合、設定しなくても自動でマッピングされます webpack を使う場合、webpack.config.js の resolve.alias を設定します Babel だけを使う場合、 babel-plugin-module-resolver を使って設定します tsc で型チェックする場合、もしくは Next.js を使う場合、tsconfig.json の paths を設定します 「~/ を任意のディレクトリにマッピ

                    JavaScript や CSS で ~/ から始まるパスをマッピングして import する方法 2020
                  • webpack入門 ~Babel,Polyfillを使って快適ES6ライフ~ – cybozu developer network

                    はじめに kintoneのJavaScriptカスタマイズを開発しているときに、誰しも"IE11で動かない!"ことを体験したことがあると思います。 こういった特定のブラウザでプログラムが動作しない問題を解決するためにBabel, Polyfill, webpackというツールを利用するのがスタンダードな解決策になっています。 本記事ではこの3つのツールをkintoneカスタマイズで利用する方法を紹介します。 チュートリアルで扱うnode,npm,npxコマンドは https://nodejs.org/ でインストーラーをダウンロードしてnode.jsをインストールすると自動的にインストールされます。 インストール方法、node, npm, npx コマンドが何を意味しているかは本記事では取り扱いません。 BabelとPolyfillについて JavaScriptには日々進化しており、ES5

                      webpack入門 ~Babel,Polyfillを使って快適ES6ライフ~ – cybozu developer network
                    • Google App Script を V8 に切り替えたらものすごい速くなった - Qiita

                      この記事は衝動的な動機によって書かれており、事実を正確に捉えるのに必要な証拠に欠けていることを予め断っておきたい。 また、分かりやすい数字というものは人間の良からぬ想像力を掻き立てる災いのもとになることも思い出して欲しい。この記事にはなるべく事実だけを書くことにして、自分の推測は「〜かも知れない」とか「〜と思う」と書くことにする。この記事を読まれたみなさんが何らかの推論をコメントやツイッターに書き散らしたい衝動にかられた時は、ぜひ同じことを実践して欲しい。 GAS のランタイムで V8 エンジンが使えるようになった ソース https://developers.google.com/apps-script/guides/v8-runtime?hl=ja#enabling_the_v8_runtime Google App Script (以降 GAS) とは、Google スプレッドシート

                        Google App Script を V8 に切り替えたらものすごい速くなった - Qiita
                      • Babel が行っている Polyfill の仕組みについて

                        アプローチの 1 つである Polyfill による互換実装は、もうアップデートされない IE11 の対応や言語仕様を追従し続ける各ブラウザの実装差分をサポートするとても便利なアプローチなのですが、ブラウザに代わり自ら互換実装を行うため副作用が伴うこともあります。 副作用によって不具合が発生した場合、どのように互換実装をしているのかを理解していないと解決が困難な場合もあるので、 Babel の基本的な処理を追いつつ Polyfill について説明していきます。 なお、この記事の内容は以下のバージョンを元に記述しています。そのため Babel 7.4.0 で非推奨となった @babel/polyfill には触れません。 Babel 7.7.4 core-js 3.4.7 Babel の基本的な処理の流れ まずは Babel を利用した Polyfill による互換実装を簡単に追ってみましょ

                          Babel が行っている Polyfill の仕組みについて
                        • GitHub - kataw/kataw: An 100% spec compliant ES2022 JavaScript toolchain

                          An insane fast Javascript toolchain. WIP Kataw is a JavaScript toolchain that aim to unify functionality that has previously been separate tools. It features everything from low-level CST manipulation to tools like linting, code analyzes, transform, and minification. CST nodes CST keywords ESNext Diagnostics Diagnostic arguments Printing Ignore comment Linting Transformation Types Comments CST par

                            GitHub - kataw/kataw: An 100% spec compliant ES2022 JavaScript toolchain
                          • [React] アプリのビルド時にBrowserslistの更新を要求されるので対処してみる | DevelopersIO

                            こんにちは、CX事業本部 IoT事業部の若槻です。 今回は、Reactアプリケーションのビルド時にBrowserslistの更新を要求されるので対処してみました。 ビルド時にBrowserslistの更新を要求される 本日(2021/09/12)より一ヶ月ほど前(2021/08/13)にcreate-react-appして作成したReactアプリケーションがあります。 このアプリケーションでデバッグを行うためにローカルでビルドや起動を行う際に、いつの日からか次のようなメッセージが表示されるようになりました。 Browserslist: caniuse-lite is outdated. Please run the following command: npx browserslist --update-db ビルド時 $ npm run build > react-app@0.1.0 b

                              [React] アプリのビルド時にBrowserslistの更新を要求されるので対処してみる | DevelopersIO
                            • Creating custom JavaScript syntax with Babel | Tan Li Hau

                              Series: Intermediate Babel JavaScriptbabelASTtransform Overview Fork the babel Crash Course on Parsing Code to AST Our custom babel parser A new token: '@@' The new parser How parsing works this.eat, this.match, this.next Our babel plugin 1. Assume `currying` has been declared in the global scope. 2. Use the `@babel/helpers` Closing Note Editor's Note Further Reading Following my previous post on

                                Creating custom JavaScript syntax with Babel | Tan Li Hau
                              • Hugo で React + TypeScript を利用してサクッとウェブサイトに RSS リーダーを追加する

                                はじめに Hugo のウェブサイトに組み込む RSS リーダーを TypeScript で開発してみたいと思い調査したところ、Hugo の最新版には ESBuild が組み込まれていて、非常に手厚く JavaScript の開発環境がサポートされていることが分かりました。 本記事では紹介していませんが Babel も利用できるようです。 また、NPM パッケージも利用できるため、普段のウェブ開発と同様の流れで開発ができ、各種ライブラリを用いた開発も非常に楽でした。 今回は Hugo で JavaScript 開発する方法を RSS リーダーの開発を例に上げ、そこで得た知見についても交える形で記事として残しておくことにしました。 ちなみに本記事内容は Hugo で JavaScript 開発する方法に焦点を絞ったものなのですが、ウェブサイトに RSS リーダーを組み込むことに焦点を絞って見た

                                  Hugo で React + TypeScript を利用してサクッとウェブサイトに RSS リーダーを追加する
                                • 7.5.0 Released: dynamic import and F# pipelines · Babel

                                  Today we are releasing Babel 7.5.0! This release includes improved support for a few ECMAScript proposals: the F# variant of the Stage 1 pipeline operator and an official plugin for the Stage 4 dynamic import() proposal (along with preset-env support). It also has support for TypeScript namespaces (experimental) and for Browserslist's default query in preset-env. You can read the whole changelog o

                                    7.5.0 Released: dynamic import and F# pipelines · Babel
                                  • GitHub - morganney/babel-dual-package: Node CLI for building a dual ESM and CJS package with Babel.

                                    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 - morganney/babel-dual-package: Node CLI for building a dual ESM and CJS package with Babel.
                                    • babel 環境における Polyfill のビルド最適化と async-await の扱い - blog.euxn.me

                                      リポジトリ euxn23/babel-and-polyfill-sample 想定読者 Babel を使っているが、 Polyfill がいまいちわからない方 Polyfill は使えるが、より最適なビルドを生成したい方 @babel/polyfill が非推奨になったことを受け現在の推奨実装を知りたい方 Polyfill とは 例として、以下の Promise を使ったコードを、 @babel/preset-env を使用して IE11 向けにビルドします。 input const main = () => { Promise.resolve().then(() => console.log('then')); } main(); output "use strict"; var main = function main() { Promise.resolve().then(functi

                                        babel 環境における Polyfill のビルド最適化と async-await の扱い - blog.euxn.me
                                      • Babel Plugin を作りながら AST と Babel を学ぶ - Qiita

                                        この記事は JavaScript Advent Calendar 2019 の 23日目の記事です。 前日の22日目は Vue-CLI 4を使用したJavaScript開発環境構築(プロトタイプ版とプロジェクト版) でした。 今回は表題通りBabel Pluginを作りながらASTとBabelを学ぼうという記事です。 AST とは? まずは根幹であるASTについて軽く説明します。 ASTはAbstract Syntax Treeの略で、日本語では抽象構文木などと呼ばれるものです。 ASTはプログラムの構造を示したデータ構造体であり、JavaScriptではJSONデータの形で表現されることが一般的になり、基本的に仕様は、ESTree に準拠されています。 ASTはBabel以外に ES Lint や webpack などにも使用されています。 実際にASTがどのようなものなのかをAST e

                                          Babel Plugin を作りながら AST と Babel を学ぶ - Qiita
                                        • JSer.info #540 フォローアップ: オープンソースの予算、フレームワークでのIE 11サポート終了の時期

                                          BabelとOpen Collective Babel is used by millions, so why are we running out of money? · Babel Babel is used by millions, so why are we running out of money? | Hacker News 4月末で大体20万ドルだった予算が、アナウンス後では大体25万ドル程度になっている。 Sponsor @babel on GitHub Sponsorsの方はあまり大きな変化がないので、基本的にOpen Collectiveに集まっている感じがする。 この話題に対して@sebmckがBabelを批判したけど、その後訂正して取り消した。 Sebastian McKenzie and Jamie Kyle and Open Source Open Collec

                                            JSer.info #540 フォローアップ: オープンソースの予算、フレームワークでのIE 11サポート終了の時期
                                          • Babelの変換処理と向き合う

                                            そういえば Babel をちゃんと勉強したことなかったなと思ってちゃんと勉強してみたって言う話です。 つまり Babel をノリで使ってたことになるのですが、自分がプログラミングを始めたときは @babel/preset-env がすでに存在しており、それを使っているだけで全てを倒せていたので勉強する必要がなかったという事情があります。 ただ、流石に知らないと言ってもネットサーフィンしているとなんらかの情報のインプットはされるので、 Babel は ES6 -> ES5 に変換する(これは間違った理解) Babel は AST 操作によって変換する Babel は parse -> traverse -> generate して変換する みたいな順番で少しずつ解像度を上げながら理解はしていました。 最後の、「Babel が parse -> traverse -> generate して変

                                              Babelの変換処理と向き合う
                                            • 【JavaScript】Babelとは何か - Qiita

                                              プログラミング勉強日記 2021年1月8日 TwitterでBabelの存在を知ったので、Babelとはいったい何なのか気になり調べてみた。 Babel(読み方:「バベル」)は、次の世代のJavaScriptの標準機能をブラウザのサポートを待たずに使えるようにするNode.js製のツールである。次の世代の標準機能を使って書かれたコードを、それらの機能をサポートしないブラウザでも動くコードに変換する。 簡単に言うと、JavaScriptのコードを新しい書き方から古い書き方に変換するツールである。具体的には、JavaScriptの言語仕様であるES2015以上の仕様のJavaScriptで記述すると、Internet Explorer11といった古いブラウザでは動作しない。そこで、Babelを使ってES2015・ES2016といった仕様で記述したJavaScriptファイルを互換性のあるEXM

                                                【JavaScript】Babelとは何か - Qiita
                                              • 7.8.0 Released: ECMAScript 2020, .mjs configuration files and @babel/cli improvements · Babel

                                                This is the first release of the year! 🎉 Babel 7.8.0 supports the new ECMAScript 2020 features by default: you don't need to enable individual plugins for nullish coalescing (??), optional chaining (?.) and dynamic import() anymore with preset-env. We also finished aligning our different configuration files with the formats natively supported by Node.js, a process that we started in the 7.7.0 rel

                                                  7.8.0 Released: ECMAScript 2020, .mjs configuration files and @babel/cli improvements · Babel
                                                • Babelプラグインの順序とallowDeclareFieldsの妙 | Wantedly Engineer Blog

                                                  Babelでdeclareクラスフィールドを使うためにallowDeclareFieldsというオプションがあります。一見すると単に設定でこれを有効化すればいいような気がしますが、実は正しくこの設定を有効化するには罠がありました。本記事ではBabelとTypeScriptのクラスフィールドサポートを紐解き、正しい理解にもとづいて適切な設定を紹介します。 クラスフィールドとはクラスフィールドはJavaScriptのStage 3提案で、クラスの直下に変数宣言のような記法でインスタンス変数やクラス変数に相当する宣言を行えるというものです。 class C { x; y = 42; static a; static b = 42; } console.log(new C().y); // => 42 console.log(C.b); // => 42TypeScriptでは型定義や修飾子ととも

                                                    Babelプラグインの順序とallowDeclareFieldsの妙 | Wantedly Engineer Blog
                                                  • 7.9.0 Released: Smaller preset-env output, Typescript 3.8 support and a new JSX transform · Babel

                                                    While preparing the Babel 8.0.0 release (in the next months), we just finished working on a new minor release which includes updates related to @babel/preset-env, TypeScript 3.8, Flow, and JSX! A few months ago, Jason Miller started working on @babel/preset-modules: an experiment to greatly reduce bundle sizes when using the module/nomodule pattern. We are excited to announce that its functionalit

                                                      7.9.0 Released: Smaller preset-env output, Typescript 3.8 support and a new JSX transform · Babel
                                                    • Turbopackは本当にviteの10倍速いのか? - Qiita

                                                      経緯 VercelがNext13と共にTurbopackを公開しました。このTurbopack、Webpackの後継として登場し、Webpackの700倍速く、Viteの10倍速く動作するとのことです。しかし、その秒数はTurbopackが0.01秒、viteが0.09秒と書かれており、10倍と表現するにはやや誇張された値です。このマーケティングに不信感を抱いたVueとViteの開発者、Evan Youは自身で実際にTurbopackの性能とViteの性能を比較をされました。注意としてEvan YouはTurbopackを否定したいのではなく、健全なOSSコミュニティでの競争を望んでいるそうです。 以下はそのGoogle翻訳ベースの翻訳です。間違いも多分にあるでしょうから、詳細が気になる方は上のリンクよりご確認ください。 翻訳 VercelはRust製のWebpack、Turbopackの

                                                        Turbopackは本当にviteの10倍速いのか? - Qiita
                                                      • Dependency Managers Don’t Manage Your Dependencies

                                                        First published on May 5, 2021, updated on May 18, 2023 I promised to write about tech, so let’s start building our JavaScript infrastructure muscles. In the next several blog posts, I’ll cover introductory topics on dependency management, actionable tips for making your infrastructure better, and guides for building JavaScript infrastructure. We’ll slowly develop our shared understanding so we ca

                                                          Dependency Managers Don’t Manage Your Dependencies
                                                        • Node.js v12のES Modulesと、Babel/TypeScriptの対応について - Qiita

                                                          本日は誕生日です。みなさんプレゼントありがとうございます。まだの方は急いでください。 あと年齢は聞かないでください。 はじめに Node.js v12で変更されるES Modulesの挙動についてと、Babelでの対応方法についての記事です。 10月に開催された関西Node学園 8時限目で発表した内容+α(後日談含む)です。 対象者 ES Modules(import構文)は知ってるけどNode.js v12で何か変わったの? 非対象者 v12での変更点もちゃんと知ってるし! そういう強い子は、この記事本文はスルーしてもいいので最後にある「おまけ」だけでも見てください。 ES Modulesって何? ていうかJavaScriptって何? この記事のゴール Node.js v12におけるES Modulesの変更点について理解し、適切なコードを書けるようになる Babelを使っている場合は適

                                                            Node.js v12のES Modulesと、Babel/TypeScriptの対応について - Qiita
                                                          • @babel/polyfill と core-js : (*x).b=z->a+y/c

                                                            ◆ @babel/polyfill は deprecated になってた ◆ 代替は core-js と regenerator-runtime のインポート ◆ core-js だとモジュールごとにロードできるので IE が消えれば 最低限の polyfill のみにできて効率よさそう @babel/polyfill が deprecated になってたES2015+ のバンドル時に IE 用に @babel/polyfill を使ってたのですが 7.4 から deprecated になってたようです https://babeljs.io/docs/en/babel-polyfill 大きく赤色で警告っぽい見た目じゃなかったので ドキュメントは一応見てたはずなのにスルーしてしまっていました 変わった理由は core-js の方に書いてます https://github.com/zloir

                                                              @babel/polyfill と core-js : (*x).b=z->a+y/c
                                                            • babel-loader で TypeScript をビルドする - 30歳からのプログラミング

                                                              最小構成のサンプルから始めて、React のビルドや Babel プラグインの利用も出来るようにしていく。 当初はts-loaderとbabel-loaderを組み合わせてビルドする予定だったのだが、Babel プラグインが動かなかったので断念した。この資料の内容に沿って設定してもダメだった。 そのため、babel-loaderのみでビルドすることにした。 使用しているライブラリのバージョン。 webpack@4.30.0 webpack-cli@3.3.2 babel-loader@8.0.5 @babel/core@7.4.4 @babel/preset-env@7.4.4 @babel/preset-typescript@7.3.3 typescript@3.4.5 react@16.8.6 react-dom@16.8.6 @types/react@16.8.17 @types/r

                                                                babel-loader で TypeScript をビルドする - 30歳からのプログラミング
                                                              • Babel 8 Release Plan · Issue #10746 · babel/babel

                                                                We plan to release a new major version in 2024 (milestone). This release won't have all the migration pain which there was while migrating from Babel 5 to Babel 6 and then from Babel 6 to Babel 7. We plan to only make a few breaking changes, and provide an easy migration strategy for each of them. Because of this, you won't see ~80 prereleases like we did in for Babel 7.0.0, but we plan to only re

                                                                  Babel 8 Release Plan · Issue #10746 · babel/babel
                                                                • npm を TypeScript で実装する - アカベコマイリ

                                                                  自作 npm xlsx-extractor を JavaScript から TypeScript へ移行した際の覚書。はじめて npm 開発した時の npm icon-gen v1.0.0 release を踏まえて、新規 npm を TypeScript で実装する場合の入門記事として機能することを考慮しながら書く。 パッケージ仕様と開発方針 開発対象となる xlsx-extractor の仕様と開発方針をまとめる。 仕様 Excel ファイル (*.xlsx 形式) を解析してシート情報とセルを取得する 空のセルは詰めずに最大の列と行で埋める Excel 上のセル座標を維持する 例えば B7 に値がある場合、0 開始の座標で B = 1 7 = 6 として常に [1][6] で取得可能とする インターフェースは Node.js 用と CLI の 2 種類へ対応 CLI は標準出力にシー

                                                                  • with IE(JavaScriptのIE11対応) - Qiita

                                                                    はじめに 政府や行政サイトの「IE縛り」に代表されるように、IE汚染国である日本で仕事としてJavaScriptを書く場合、IEと共存するしなければならない場合が多いです。 with コロナならぬwith IEです。 IE生活様式 Transpile Bundle Polyfill TranspileとBundle は、ES5の書き方で1つのファイルに書いていれば不要です。 エンジニアが不便を我慢すれば必要ない工程ではありますが、そんな我慢はしたくありません。 コロナで言えばマスク、消毒、手洗い、うがい、密を避ける、換気のような個人でできる対策に当たると思います。 Polyfillは、もともとIE11が対応していない機能に対応させるもので、コロナでいえば治療薬ともいえるものだと思いますが、薬なのでリスクもあります。 コロナと違って、みんなでIEやめる合意が取れればIE対応せずに済む世界にな

                                                                      with IE(JavaScriptのIE11対応) - Qiita
                                                                    • 現実の Babel プラグインを SWC プラグインに移行する

                                                                      最近の SWC は Rust でプラグインを書くことができます。 先日、現実の Babel プラグインを SWC プラグインに移植して実際に使ってみたので、それについて書き残します。 (SWC のプラグインの仕様は変わっていく可能性が高いので、この記事や参照先のコードはあんまり参考にしすぎないように...) 移行対象の Babel プラグイン 今回の移行対象の Babel プラグインは、主に React 用の状態管理ライブラリである Valtio に実装されている useProxy という Hooks です。 この Hooks は babel-plugin-macros で実装されており、ビルド時に別の Hooks に展開されます。今回はこの挙動を SWC プラグインをとして再現します。 useProxy Valtio はシンプル(見かけ上はシンプル、実際にはシンプル/イージーでいえばイー

                                                                        現実の Babel プラグインを SWC プラグインに移行する
                                                                      • Sucrase

                                                                        Super-fast Babel alternative

                                                                        • .browserslistrcで対象ブラウザを指定する - Qiita

                                                                          .browserslistrcは、「AutoprefixerでCSSにどのベンダープレフィックスを付けるか」などを決める設定ファイルです。 Autoprefixer以外にも対応していてツールごとに設定を持たずに済むので、ツール間で対象ブラウザ設定の齟齬が起こるのを防げます。 ブラウザのバージョンを直接指定せず、カバー率や直近○年という方法で指定しておくと、ブラウザのバージョンアップや、新しいブラウザの登場、シェアの激変などへの手動での設定変更が不要になります。 .browserslistrcファイルではなく、package.json に記述することも可能です。 対応ツール 対応するツールは下記です。 Autoprefixer Babel postcss-preset-env eslint-plugin-compat stylelint-no-unsupported-browser-feat

                                                                            .browserslistrcで対象ブラウザを指定する - Qiita
                                                                          • Next.jsとテストの話 - dachi

                                                                            #アドベントカレンダー Next.js Advent Calendar 2019 8日目の記事です。 Scrapboxは使い勝手がよくてなんでも書きたくなってしまいますね、個人ブログが全く息をしていない・・・。 Next.js初心者な私がNext.jsでええ感じにテストできるように設定するために直面した問題や疑問などを書きます。 テスト関連のまとまった情報がなかったので今後もここに都度まとめていって便利なメモにしていく予定です。 Jestを入れたい Next.jsでテストしたーい!と思ってJestを入れようとしたらハマった話を書きます。 ts-jestとbabel-jestの役割の違いに気づかず、頭が混乱してしまいました。 Next.jsに限らずな問題ですがNext.js触ってる時にハマったところだったので書いておきます。 あと、当たり前ですがドキュメントはちゃんと読まないとダメですね (

                                                                              Next.jsとテストの話 - dachi
                                                                            • 「Babel 8 Release Plan」を眺める - Qiita

                                                                              Help us understand the problem. What are the problem?

                                                                                「Babel 8 Release Plan」を眺める - Qiita
                                                                              • ライブラリ開発のための環境設定 — 仕事ですぐに使えるTypeScript ドキュメント

                                                                                module.exports = { module: { rules: [ { test: /\.js$/, use: "babel-loader", exclude: /node_modules/ } ] } }; なお、ライブラリの場合は特別な場合を除いてBabelもwebpackもいりません。CommonJS形式で出しておけば、Node.jsで実行するだけなら問題ありませんし、基本的にwebpackとかrollup.jsとかのバンドラーを使って1ファイルにまとめるのは、最終的なアプリケーション作成者の責務となります。特別な場合というのは、Babelプラグインで加工が必要なJSS in JSとかですが、ここでは一旦おいておきます。ただし、JSXはTypeScriptの処理系自身で処理できるので不要です。 TypeScriptユーザーがライブラリを使う場合、バンドルされていない場合は @

                                                                                • Release v5.0.0 · facebook/create-react-app

                                                                                  v5.0.0 (2021-12-14) Create React App 5.0 is a major release with several new features and the latest version of all major dependencies. Thanks to all the maintainers and contributors who worked so hard on this release! 🙌 Highlights webpack 5 (#11201) Jest 27 (#11338) ESLint 8 (#11375) PostCSS 8 (#11121) Fast Refresh improvements and bug fixes (#11105) Support for Tailwind (#11717) Improved packag

                                                                                    Release v5.0.0 · facebook/create-react-app

                                                                                  新着記事