問題タブ [preact]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ロールアップ + バブル設定でサーバー側レンダリングで preact-compat を使用するには?
ロールアップ + ブーブルを使用しているプリアクト アプリがあります。Reactを使用する別のコンポーネントテキスト マスクを使用する必要があります。ロールアップ ビルド ファイル内にエイリアスを作成しようとしています。クライアント側では問題なく動作しますが、サーバー側でビルドすると失敗します。ロールアップ ビルド構成内のプラグイン セクションは次のとおりです:-
サーバー側アプリで preact-compat を使用しているときに問題があるという問題に遭遇し、代わりに module-alias を使用することを提案していました。だから私は自分のノードサーバーファイルに以下のモジュールエイリアスを与えてみました:-
それを行った後でも、私はまだ以下のエラーが発生します:-
typescript - Typescript + preact で Jest を使用する
テストでJSX をトランスパイルする際の問題h()
。すべての構成ファイルは create-react-app に似ており、変更を除外しTypeScript
、preact
create-react-app my-app --script=react-scripts-ts
TypeScriptプロジェクト用に-経由でアプリを作成します。次に、イジェクトして(使用しないでください) に変更react
します。preact
preact-compat
preact
I'm add to package.json
into babel.plugins section
new plugin ["babel-plugin-transform-react-jsx", { pragma: "h"}]
-デフォルトの代わり<JSX />
にh(JSX)
関数呼び出しにトランスパイルするため (移行React.createElement(JSX)
ガイドhttps://preactjs.com/guide/switching-to-preact )。
そして、これはうまくいきます。
しかし、テストにはトランスパイルの構成が異なります。デフォルトは<JSX />
トランスパイルです。React.createElement(JSX)
そしてテストで私はエラーを取りますReferenceError: React is not defined at Object.<anonymous> (src/Linkify/Linkify.test.tsx:39:21)
。テストおよびテスト済みファイルに手動で変更<JSX />
すると、動作します。h(SomeComponent)
テストのためにトランスパイル<JSX />
する方法はh(JSX)
?
テストサンプル: