1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudFlareにデプロイするためのRemixプロジェクト ESlintを導入してみる

Last updated at Posted at 2024-07-27

概要

今までさんざんいじってきたRemixのCloudflareテンプレートのRemixプロジェクトでESlintが動くようにしてみる。

前提

Cloudflareテンプレートを指定してRemixのアプリケーションが作成されていること。

説明に使うコードの時系列は下記の後になる。

ちなみにESlintはPHPLaravelでいうところのLaraStan(PHPStan)的な立ち位置の静的解析ツールらしい。

方法

  1. 実はデフォルトでESlint関連パッケージはインストールされている、package.jsonのdevDependenciesにESlint系のパッケージが存在していることを確認

    package.json
    "devDependencies": {
      "@typescript-eslint/eslint-plugin": "^6.7.4",
      "@typescript-eslint/parser": "^6.7.4",
      "eslint": "^8.38.0",
      "eslint-import-resolver-typescript": "^3.6.1",
      "eslint-plugin-import": "^2.28.1",
      "eslint-plugin-jsx-a11y": "^6.7.1",
      "eslint-plugin-react": "^7.33.2",
      "eslint-plugin-react-hooks": "^4.6.0",
    },
    
  2. 念の為下記を実行してパッケージをインストール

    npm install
    
  3. .eslintrc.cjsというファイルがプロジェクトルートディレクトリに存在することを確認

  4. プロジェクトルートディレクトリで下記を実行してESlintを実行し、まずはコマンドが問題なく通ることを確認

    npm run lint
    
  5. ちゃんとエラーが検出されるか確認するためapp/root.tsxを下記のように修正(使用していない定数hogeを定義)

    app/root.tsx
    import {
      Links,
      Meta,
      Outlet,
      Scripts,
      ScrollRestoration,
    } from "@remix-run/react";
    
    export function Layout({ children }: { children: React.ReactNode }) {
      const hoge = "hoge";
      return (
        <html lang="en">
          <head>
            <meta charSet="utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1" />
            <Meta />
            <Links />
          </head>
          <body>
            {children}
            <ScrollRestoration />
            <Scripts />
          </body>
        </html>
      );
    }
    
    export default function App() {
      return <Outlet />;
    }
    
  6. $ npm run lintを実行して下記の様にエラー検出されれば完了(TypeScriptのバージョン起因の警告が出ているが警告レベルなので一旦無視している)

    $ npm run lint
    
    > lint
    > eslint --ignore-path .gitignore --cache --cache-location ./node_modules/.cache/eslint .
    
    =============
    
    WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.
    
    You may find that it works just fine, or you may not.
    
    SUPPORTED TYPESCRIPT VERSIONS: >=4.3.5 <5.4.0
    
    YOUR TYPESCRIPT VERSION: 5.4.5
    
    Please only submit bug reports when using the officially supported version.
    
    =============
    
    /Users/shun/workspace/02_study/remix/todo-cloudflare-d1/app/root.tsx
      10:9  error  'hoge' is assigned a value but never used  @typescript-eslint/no-unused-vars
    
    ✖ 1 problem (1 error, 0 warnings)
    

※確認が終わったらroot.tsxのconst hoge = "hoge";の記載は削除して元に戻しておくこと。

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?