日々是好日

プログラミングについてのあれこれ、ムダ知識など

vue serve コマンドとカスタムパーサ設定の話

vue serve <vue file>が便利そうだったので使いたいと思ったら、思いのほかトラップがあったのでメモ。

.eslintrc.jsにおいてカスタムパーサを指定するのがキモだった模様。

実際何が必須で何が不要なのかわかってないので後で調べる。

手順

まず最初にnpm install -g @vue/cli @vue/cli-service-globalをインストールしておく。

このままvue serve <vue file>をやっても、おそらくCannot find module 'babel-eslint'とエラーを吐いてしまう。

babel-eslintパッケージがインストールされてないのは分かる。 一方で、ESLintをローカルのままでserveしたい場合が出てこなかった。

ESLintをローカルのままでserveしたい場合、次のようにする。

①最初にnpm i --save-dev eslint babel-eslintでローカルにインストールする。

package.jsondevDependenciesに次のとおり記載されていればOK(だと思う)。

// package.json
// `vue create`で最初から導入されているパッケージも含む
"devDependencies": {
    "@typescript-eslint/eslint-plugin": "^2.33.0",
    "@typescript-eslint/parser": "^2.33.0",
    "@vue/cli-plugin-babel": "~4.4.0",
    "@vue/cli-plugin-eslint": "~4.4.0",
    "@vue/cli-plugin-typescript": "~4.4.0",
    "@vue/cli-service": "~4.4.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "typescript": "~3.9.3",
  }

.eslintrc.jsに次のとおり追記する

// .eslintrc.js
module.exports = {
  root: true,
  env: {
    node: true
  },
  'extends': [
    'plugin:vue/essential',
    'eslint:recommended',
    '@vue/typescript/recommended'
  ],
  parser: "vue-eslint-parser",  // ←追記
  parserOptions: {
    parser: "@typescript-eslint/parser",  // ←追記
    ecmaVersion: 2020
  },
  ...

vue serve <vue file>でローカル鯖起動できればOK

あとで調べる

カスタムパーサ #とは

参考

cli.vuejs.org

igatea.hatenablog.com

github.com

qiita.com

eslint.vuejs.org

Vueでプロジェクトを初期化したときのメモ

vue create <project-name>でVueプロジェクトを作成したとき、毎回同じところでハマっているのでいい加減手順をメモしておく。

構成は Vue+Firebase、UIにVuetifyを使用する(Vue 4系)。

あと、ついでにFirebase FunctionsではローカルのESLintを有効にする(グローバルインスコしない)。

手順

どうもVueで初期化したプロジェクトフォルダ内でfirebase initすると、Functionsのpackage.jsonとVueのpackage.jsonが競合(nodeモジュールが思ったところにインストールされない)してしまうため、frontendとbackendディレクトリに分けて構成した。

package.jsonがnode_moduleを走査するときの動作が影響しているような気がするけど、いまいち分からん。

…と思って検索したらこうすればよかった件。でもやっぱりめんどそうだな…( ˘ω˘)

www.it-swarm.dev

手順少し修正。FunctionsとHostingを同一フォルダにインストールしようとしてたのがいけない…。

Firebase でプロジェクトを作成

  1. Firebase コンソールでプロジェクトを作成する。

  2. FunctionsやStorage等初期化しておく(reagionはasia-northeast1(東京))

あとでindex.htmlに注入するHtmlスニペットはとりあえず脇に置いておく。

ローカルにプロジェクトを作成

  1. 前準備として、frontendbackend/firebaseディレクトリを作成する

  2. frontendディレクトリにて、vue create <project-name>でVueプロジェクトを作成する。このとき、TypeScriptを選択しておく(あとから導入する場合

  3. tsconfig.jsonにてcompilerOptions.module: "commonjs"とする

  4. とりあえずnpm run buildでビルドできることを確認する(distディレクトリが生成)

  5. vue add vuetifyでVuetifyを導入する。App.vue等書き換えるか聞かれるが、問題なければYesで。

  6. tsconfig.jsonにて、compilerOptions.types: ["vuetify"]を追加する。忘れると型定義を参照できないためコンパイル時にエラー吐く。

  7. backend/firebaseに移動し、firebase initでFirebase プロジェクトを初期化する

  8. Firebase コンソールにて作成したプロジェクトを選択する

  9. とりあえずFirestoreとHostingとFunctionsを選択する。Hostingはfrontendディレクトリで初期化する。

  10. FuncitonsをインストールするときにTSLintを導入するか聞かれるが、現在はESLintに移行しているようなのでNoを選択する

  11. ひととおりインストールが終わったら、frontendディレクトリに移動し、firebase init hostingホスティングをインストールする

  12. Hostingの設定時にデプロイするディレクトリを聞かれるので、distとする。このとき既存のファイルを上書きするか聞かれるが、Noとする

  13. firebase serveでVuetifyの初期ページが表示されることを確認

  14. backend/firebase/package.jsonにてdevDependencieseslintの依存関係を追加し、npm i

  15. ./node_modules/.bin/eslint --initでESLintを導入

  16. frontend/public/index.html<body></body>内にFirebaseを利用するためのHtmlスニペットを記載する

以上で終わり。 ローカルの構築にトラップがありすぎる。これ全部覚えてるフロントエンドエンジニアつよすぎでは…。

参考

qiita.com

qiita.com

PowerShellスクリプトでbuild.gradleをオレオレ記述化

Android Studioでプロジェクトを初期化したときに生成されるbuild.gradleをオレオレ記述化したのでメモ。

書き換える動機はこちらの記事が基です。

android.benigumo.com

今まで手動で直していましたが、あまりにもめんどうだったのでテンプレート化してみました。 なお筋肉で解決しているので、ps1ファイルに処理べた書きです。必要に応じ function に切り出し等行ってください。

続きを読む

Firebaseの初期化でハマった

Firebaseの初期化でめちゃくちゃハマったのでメモ。

ネット上をさまよったが、どうもFirebaseの新旧のバージョンで書き方が変わったため、かなり情報がごちゃごちゃになってるっぽい。

  • 環境
  • 何ができなかったのか
  • 何が原因だったか
  • どうやって解決したか
    • コード上でFirebaseを初期化する
  • 所感
続きを読む

CLIP STUDIO PAINTファイルからプレビュー画像を生成する

CLIP STUDIO PAINT ファイル(.clip)のプレビュー画像を node.js で出力したのでメモ。

なお、fs.readFileSync/writeFileSyncを使用しているが、 テスト用に記述してるだけなので、実装する場合はfs.readFile/writeFile推奨。

  • コード
  • 解説
    • clipファイルの読み込み
    • SQLiteのデータの位置を探索
    • SQLiteの展開とpngの書き出し
  • 感想
  • 参考
続きを読む

VSCode実践ガイドでWebアプリ開発環境を作ってみた

森下様の著書「Visual Studio Code 実践ガイド」をフラゲ()したので、 本書に従い初めてVue.js+TypeScriptで開発環境を作ってみました。

gihyo.jp

  • Vueでの開発環境構築なんてコマンドライン一発でしょ?
  • 環境構築
    • フォルダ構成
    • tscの導入
    • その他のパッケージのインストール
    • tsconfig.jsonの生成
    • tslint.jsonの生成
  • 感想
続きを読む