qrac / minista

Static site generator with 100% static export from React and Vite.
https://minista.qranoko.jp
165 stars 13 forks source link

minista.config.tsで相対パスによるimportが出来ない #107

Closed ongaq closed 1 year ago

ongaq commented 1 year ago

問題

プロジェクトrootに配置した minista.config.ts./mod を importした結果エラーとなった。

import test from './mod';
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/xxxxx/minista/node_modules/.minista/optimized-config/mod' imported from /Users/xxxxx/Projects/minista/node_modules/.minista/optimized-config/minista.config.mjs
    at new NodeError (node:internal/errors:393:5)
    at finalizeResolution (node:internal/modules/esm/resolve:323:11)
    at moduleResolve (node:internal/modules/esm/resolve:916:10)
    at defaultResolve (node:internal/modules/esm/resolve:1124:11)
    at nextResolve (node:internal/modules/esm/loader:163:28)
    at ESMLoader.resolve (node:internal/modules/esm/loader:841:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:40)
    at link (node:internal/modules/esm/module_job:75:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

tsconfig.json

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "composite": true,
    "allowSyntheticDefaultImports": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "noErrorTruncation": true,
    "jsx": "react-jsx",
    "paths": {
      "~/*": ["./src/*"]
    },
    "types": ["minista/client"]
  },
  "include": ["./minista.config.ts", "./mod.ts", "src"]
}

期待する結果

minista.config.jsで相対パスで書いたimport(またはtsconfig.jsonのincludeに記載したts?)はgetUserConfig時に一緒にcompileして読めるようにしてほしい。 https://github.com/qrac/minista/blob/2c4ff56b5c5592045576ba6a26d520f4ff520196/src/user.ts#L22-L30 ただしimportした場合、なのでimportせずconfig内に関数を書けば問題ないため、優先度としては低くて問題ありません。

環境

macOS Monterey: 12.5.1 node.js: v18.12.0 minista: v2.8.3

qrac commented 1 year ago

@ongaq ご指摘ありがとうございます!この問題 #90 は把握しておりまして、次期メジャーアップデートで直ります。

優先度は低いとのことですが、すぐに開発体験を良くしたい場合は現在開発中のv3アルファ版を試すこともできます↓

$npm i -D minista@next

※v3アルファ版はv2からの変更点が結構ありますので、もしお使いいただく場合は開発メモを参照ください→ #60

ongaq commented 1 year ago

@qrac issue読み込めておらず重複となり申し訳御座いません! 承知しました。次期メジャーアップデート楽しみにしてます! こちらクローズ致します。