qrac / minista

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

Node.jsでnpm run playなどが実行不能だったので修正 #125

Closed FuCrowRabbit closed 1 month ago

FuCrowRabbit commented 1 month ago

修正箇所

esbuildのエントリーポイントで、{ts,tsx}のようなファイルパターンを使っている箇所を展開する形に置換しました。

対応した理由

npm run build後に、npm run playなどが動きませんでした。

$ npm run play

> minista-monorepo@4.0.0-alpha.8 play
> npx minista ./playground/_default

✘ [ERROR] Failed to resolve entry for package "minista-plugin-ssg". The package may have incorrect main/module/exports specified in its package.json. [plugin externalize-deps]

    node_modules/vite/node_modules/esbuild/lib/main.js:1225:27:
      1225 │         let result = await callback({

原因

原因を調査したところ、build時に一部のファイルが出力されていない事が分かりました。 出力されていないファイルの傾向を確認すると、esbuildで以下の書き方がされている箇所でした。

*.{ts,tsx}

esbuildのCLIについて調査をしたところ、このようなパターンはサポートされていないようでした。 https://esbuild.github.io/api/#glob-style-entry-points

よって、展開する形に置換しました。

*.ts *.tsx

以上の修正を加えることにより、npm run playが動くようになりました。

環境

qrac commented 1 month ago

@FuCrowRabbit あ、そうなんですね!macだと動いていたので環境依存かもしれません。 展開した方が確実なのでそちらに合わせます!

n build-src:ssg

> minista-monorepo@4.0.0-alpha.8 build-src:ssg
> cd ./packages/plugin-ssg && npm run build-src

> minista-plugin-ssg@4.0.0-alpha.8 build-src
> esbuild ./src/client/*.ts ./src/node/*.{ts,tsx} --outbase=src --outdir=dist

  dist/node/build.js   3.9kb
  dist/node/page.js    2.6kb
  dist/node/serve.js   2.5kb
  dist/node/html.js    2.1kb
  dist/node/layout.js  705b 
  ...and 4 more output files...

⚡ Done in 86ms

minista on  v4 [!?⇡] via  v20.10.0 
❯