オプティムくん

オプティムくん

最近の記事

void is not valid as a constituent in a union type の修正方法

状況function get(): string { // get something}function set(): void { // set something} この2つの関数を1つにまとめたいが function manage(mode: "get" | "set"): string | void { switch (mode) { case "get": // get something break; case "set"

    • eslint cannot use globall installed plugins

      表題の通り

      • vite.config の library mode のタイプエラー

        状況multiple configs を modeを使って1つのファイルにまとめたい export default defineConfig(({ mode }) => { の中で build: { lib: { entry: "src/preload/index.ts", formats: ["cjs"], fileName: () => "index.cjs", }, library mode を使おうとするとエラーに

        • Cannot find module 'electron/renderer'の解決方法

          状況typescript+electronで開発中 ディレクトリ構成を変更し、preload scriptファイルを移動させたらtscでエラーになった エラー内容src/preload/index.ts:3:44 - error TS2307: Cannot find module 'electron/renderer' or its corresponding type declarations.3 import { contextBridge, ipcRenderer

        void is not valid as a constituent in a union type の修正方法

          electron unable to load preload のエラー回避

          状況mysql2を使用するためにpreloadでipc通信の定義?をしたい electron+react+typescript+viteのため、構成が複雑 package.jsonでは"type": "module",を設定している エラー内容import export まわりでエラーが発生している模様 解決方法拡張子:preload.ts => preload.mts esmoduleとして使うには、preload.mjsとしなきゃならない mainスクリプトは、.j

          electron unable to load preload のエラー回避

          Electron + MUI CardMedia で mp4を再生する

          ローカルmp4// electron-main.ts// これをやらないとNot allowed to load local resource:のエラーになる webPreferences: { webSecurity: false, }, <CardMedia component="video" src="file:///D:/Videos/myvideo.mp4" controls/> Youtube<CardMedia componen

          Electron + MUI CardMedia で mp4を再生する

          run multiple npm scripts with concurrently

          状況npm-run-all + vite + nodemon + electron の組み合わせがなぜかelectronの再起動が二回目以降できなくなる という謎現象が発生してどうしても解決できないので、移行検討のためconcurrentlyを調べる package.jsonがこんな感じだとして "scripts": { "watch": "npm run watch:typescript && npm run watch:vite", "watch:type

          run multiple npm scripts with concurrently

          electron+react の技術選定がとても難しかった

          目的作業用の拡張動画プレイヤーを作る 技術選定video player: mpv vs electron mpv: 圧倒的パフォーマンス。luaで拡張 electron: jsで作れてUIが作りやすい。圧倒的なエコシステムnpmを使えるので楽すぎる => electron採用 html template: ejs vs pug vs other ejs: htmlをそのままに拡張した感じ。すぐに慣れそう pug:  jsonに対するyamlみたいな感じ。キータイプ数

          electron+react の技術選定がとても難しかった

          vite: Module "fs" has been externalized for browser compatibility, imported by "electron/index.js"

          vite build したら [plugin vite:resolve] Module "fs" has been externalized for browser compatibility, imported by なんか出てきた 原因electronのmain.tsをバンドルする際に // main.tsimport { app, BrowserWindow, screen } from "electron"; main.tsの中でelectronモジュー

          vite: Module "fs" has been externalized for browser compatibility, imported by "electron/index.js"

          vite: (!) outDir xxx is not inside project root and will not be emptied.Use --emptyOutDir to override.

          viteコマンドうったら >vite build なんか出てきた vite: (!) outDir xxx is not inside project root and will not be emptied.Use --emptyOutDir to override. 原因viteは、ourdirの中身を一度空にしてからビルドするという標準仕様があるが、例外として、outdirをproject root の外にあるときは警告を行っている outDirをprojec

          vite: (!) outDir xxx is not inside project root and will not be emptied.Use --emptyOutDir to override.

          available placeholder in python rich progress

          プレースホルダー一覧progress = Progress( TextColumn("{task.id}"), TextColumn("{task.description}"), TextColumn("{task.total}"), TextColumn("{task.completed}"), TextColumn("{task.finished_time}"), TextColumn("{task.visible}"), Tex

          available placeholder in python rich progress

          prettier v3 の導入意思決定

          状況prettierはvscode拡張機能でしか使ったことがない prettierのプラグインに興味を持つ prettier v3 の発見何かの時にprettier-vscodeのREADMEを見ていると という文章を発見 どうやら今まで使っていたのはv2で、v3はもう発表されてるけどvscode拡張機能の方にv3が導入されるのはまだ先になる ということみたい v3の導入方法今までは拡張機能に同封されているprettierを使っていたので、 v3を使おうと思うとローカ

          prettier v3 の導入意思決定

          json-schema 特定プロパティを禁止する方法

          { "$schema": "https://json-schema.org/draft-07/schema", "type": "object", "properties": { "commands": { "not": {} }, "keybindings": { "not": {} } }} 他にもnot anyOf requiredを使うやり方も

          json-schema 特定プロパティを禁止する方法

          json-schema $refを上書きマージする方法

          { "allOf": [ { "$schema": "https://json-schema.org/draft-07/schema", "type": "object", "properties": { "newproperty": { "type": "string" }

          json-schema $refを上書きマージする方法

          Parsing error: was not found by the project service の修正方法

          状況eslint で flat config を使って recommended-type-checked や strict-type-checked を利用したら、srcフォルダの外にある.tsファイルが表題のエラーに引っかかる 解決方法ignoreに入れてしまえば、回避はできるが、それだとまったくlintされなくなってしまう やるべきは、type-check の対象から外すこと disable-type-checkedを利用すればできる import eslint fr

          Parsing error: was not found by the project service の修正方法

          eslint flat config 導入 with alloy

          状況eslint config は alloy を使っている eslintrc => eslint.config に変更したい スクリプト// .eslintrc.jsmodule.exports = { extends: ["alloy", "alloy/typescript"]}; eslint.configにはextendsプロパティがなく importして使う必要がある こんな感じか? import alloy from "eslint-config-al

          eslint flat config 導入 with alloy