【Deno】Aleph.jsを試した時にうまく動かなかったバージョンの組み合わせ
2021/05/06
※2021年5月6日時点の情報です
「【Deno】Aleph.jsで作成したアプリをVercelにデプロイする」を書いた時に試した内容でうまく動かなかったバージョンの組み合わせがあったので記録として残しておく
組み合わせというよりAleph.jsのみの不具合だと思う
まだアルファ版なのでしょうがない
- Deno 1.6.3 と Aleph.js 0.2.28
- Deno 1.9.2 と Aleph.js 0.3.0-alpha.32
Deno 1.6.3 と Aleph.js 0.2.28
バージョン
$ aleph --version
aleph.js 0.2.28
deno 1.6.3
v8 8.8.294
typescript 4.1.3
詳細
Get Started - Aleph.jsで紹介されていたバージョンの組み合わせで、aleph dev
でローカルサーバーを起動した時にコケた
これは最新版のAleph.jsを使うことで解決した
エラーメッセージ
error: Uncaught (in promise) TypeError: TS2345 [ERROR]: Argument of type 'TransformerFactory<SourceFile>' is not assignable to parameter of type 'TransformerFactory<SourceFile> | CustomTransformerFactory'.
Type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").TransformerFactory<import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").SourceFile>' is not assignable to type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").TransformerFactory<import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").SourceFile>'.
Types of parameters 'context' and 'context' are incompatible.
Type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").TransformationContext' is not assignable to type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").TransformationContext'.
The types of 'factory.createTypeParameterDeclaration(...).parent' are incompatible between these types.
Type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").CallSignatureDeclaration | import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").ConstructSignatureDeclaration | ... 17 more ... | import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").InferTypeNode' is not assignable to type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").CallSignatureDeclaration | import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").ConstructSignatureDeclaration | ... 17 more ... | import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").InferTypeNode'.
Type 'JSDocTemplateTag' is not assignable to type 'CallSignatureDeclaration | ConstructSignatureDeclaration | MethodSignature | ArrowFunction | ... 15 more ... | InferTypeNode'.
Type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").JSDocTemplateTag' is not assignable to type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").JSDocTemplateTag'.
Types of property 'parent' are incompatible.
Type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").JSDoc | import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").JSDocTypeLiteral' is not assignable to type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").JSDoc | import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").JSDocTypeLiteral'.
Type 'JSDoc' is not assignable to type 'JSDoc | JSDocTypeLiteral'.
Type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").JSDoc' is not assignable to type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").JSDoc'.
Types of property 'parent' are incompatible.
Type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").HasJSDoc' is not assignable to type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").HasJSDoc'.
Type 'ImportEqualsDeclaration' is not assignable to type 'HasJSDoc'.
Property 'isTypeOnly' is missing in type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").ImportEqualsDeclaration' but required in type 'import("https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts").ImportEqualsDeclaration'.
if (reactRefresh) transformers.before!.push(reactRefreshTS())
~~~~~~~~~~~~~~~~
at https://deno.land/x/[email protected]/tsc/compile.ts:28:49
'isTypeOnly' is declared here.
readonly isTypeOnly: boolean;
~~~~~~~~~~
at https://cdn.esm.sh/v41/[email protected]/lib/typescript.d.ts:1601:18
関連するIssue
“Get Started” instructions are broken · Issue #190 · alephjs/aleph.js
Deno 1.9.2 と Aleph.js 0.3.0-alpha.32
バージョン
$ aleph --version
aleph.js 0.3.0-alpha.31
deno 1.9.2
v8 9.1.269.5
typescript 4.2.2
詳細
現時点での最新のDenoとAleph.jsの組み合わせで、aleph build
でビルドした時にコケた
この問題は既に修正済みでmasterにマージはされているが、まだリリースはされていない
これはビルドした時のアウトプットするディレクトリが存在していないためにコケる
すでにdistディレクトリ(distはデフォルト)がある場合は問題ないし、ない場合はmkdir dist
で作ってあげれば良い
Vercelにデプロイしたい場合はバージョンを下げる(v0.3.0-alpha.31にする)か、BUILD COMMANDにディレクトリ作成のコマンドを入れることで問題なくデプロイできることを確認済み
mkdir -p dist && curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.9.2 && /vercel/.deno/bin/deno run -A https://deno.land/x/[email protected]/cli.ts build
エラーメッセージ
INFO Compiling...
INFO {} polyfills.js (ES2015) • 207KB
INFO {} deps.js • 154KB
INFO {} shared.js • 542B
INFO {} /pages/index.js • 5KB
INFO {} main.js • 382B
error: Uncaught (in promise) NotFound: No such file or directory (os error 2)
await Deno.mkdir(distDir)
^
at unwrapOpResult (deno:core/core.js:99:13)
at async Object.mkdir (deno:runtime/js/30_fs.js:101:5)
at async Application.build (https://deno.land/x/[email protected]/server/app.ts:803:7)
at async default (https://deno.land/x/[email protected]/cli/build.ts:18:3)
at async main (https://deno.land/x/[email protected]/cli.ts:99:3)