hoge

いわゆるWeb Developerの備忘録

Deno1.0がリリースされました

Node.jsの開発者である、ライアン・ダールが作成したDenoが Version 1.0 になり、正式にリリースされました 。

Deno は新しい JavaScript/TypeScript のランタイムで、標準で TypeScript が入っています。

node_modules とは互換性がないので、NPM のパッケージは使えないようですが、ES Module に対応しており、URL でインポートが可能です。

import { serve } from "https://deno.land/std@0.50.0/http/server.ts";

またすべての非同期処理が Promise を返すので、asyncで囲む必要がありません。

まだ、詳しく触っていないので細かな思想や使用感等は分かりませんが、マニュアルページが日本語化されているので、そちらを読むほうが良さそうです。

Deno v1.0.0 がリリースされたということでマニュアルページを翻訳ッ - Qiita

Node.js と Deno でエラーの親切さがどれくらい違うのか知りたかったので、以下のコードを実行してみました。

{
  let text = "Hello";
  text = "Hello World";

  let text = "Hello World";
  {
    let text = "World";
    console.log(text);
  }
  console.log(text);
}

{
  const text = "Hello";
  text = "Hello World";
}

Node.js の実行結果

PS C:\Users\hi97\desktop> node index.js
C:\Users\hi97\desktop\index.js:5
  let text = "Hello World";
      ^

SyntaxError: Identifier 'text' has already been declared
    at Object.compileFunction (vm.js:344:18)
    at wrapSafe (internal/modules/cjs/loader.js:1106:15)
    at Module._compile (internal/modules/cjs/loader.js:1140:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
    at Module.load (internal/modules/cjs/loader.js:1040:32)
    at Function.Module._load (internal/modules/cjs/loader.js:929:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

Deno の実行結果

PS C:\Users\hi97\desktop> deno run index.js
error: Uncaught SyntaxError: Identifier 'text' has already been declared
let text = "Hello World";
    ^
  at file:///C:/Users/hi97/desktop/index.js:5:7

簡単なエラーなので大きく変わりませんが、Deno の方は module に関するエラーが表示されないので、問題のエラーが何なのかがすぐに分かって良さそうです。

まだリリースされたばかりで、フレームワークへの採用なども少なく、Node.js に置き換わるとは思っていませんが、ECMA Script の規格を採用していることや、TypeScript の標準サポートなど良さそうな部分はあるので、趣味で使っていきたいと思います。


同じカテゴリー(雑記)の記事
上の画像に書かれている文字を入力して下さい
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
Deno1.0がリリースされました
    コメント(0)