Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

npm create book <dir> で実行される npm が古い #49

Open
akabekobeko opened this issue Oct 25, 2021 · 2 comments
Open

npm create book <dir> で実行される npm が古い #49

akabekobeko opened this issue Oct 25, 2021 · 2 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@akabekobeko
Copy link
Member

#27 を close するために以下を実行したら Markdown がテンプレートのままであった。

$ npm create book sample

yarn からだと #27 の処理が効いて Markdown が themes の定義を反映したものとなる。

$ yarn create book sample

この現象は以前にも遭遇していて npm のキャッシュを消すなどしてみたが、最終的に

  • npm cache clear --force を実行する
  • Homebrew で入れた Node.js と npm をすべて消す

などを実行しているうちに直った。しかしエンド ユーザー環境で発生した場合、これらの手順を案内するのは厳しいだろう。なお npm install create-book して最新版であることが確認されたものを npm-scripts で

{
  "scripts": {
    "start": "create-book sample"
  },
  "dependencies": {
    "create-book": "latest"
  }
}

のように定義して npm start した場合は当然ながら最新が実行される。npx create-book sample でも再現するため、おそらく npm のキャッシュに関する問題と予想される。なお npm create book sample を実行するたびに

$ npm create book sample
Need to install the following packages:
  create-book
Ok to proceed? (y) y

と聞かれるのも怪しい。yarn はこの問い合わせもなく即実行となる。私の環境的な問題だと思われるが、厳密に原因を突き止めて防止策を講じるか README などで補足したい。

@akabekobeko akabekobeko added the bug Something isn't working label Oct 25, 2021
@akabekobeko akabekobeko added this to the 1.0.0 milestone Oct 25, 2021
@akabekobeko akabekobeko self-assigned this Oct 25, 2021
@akabekobeko
Copy link
Member Author

過去に本件で困って以下の issue で相談したのを思い出した。

本プロジェクトの issue としては #23 であり、ここに村上さんがキャッシュ削除の方法や検証結果をコメントしてくれている。私が開発を引き継いだ際のリリース作業の一環として issue を立てたため複数の問題が混じっている。

本件についてはエンドユーザー環境で過去に create-book が実行された後に更新を提供できない可能性があるため、独立した問題として扱うべきだろう。よってこの issue では #23 の内容も参考にエンド ユーザーを視野に入れた解決を試みる。

@akabekobeko
Copy link
Member Author

キャッシュによりダウンロードの負荷を避けられるが、明示的に指定したわけでもないのに古いバージョンを参照し続けるのは問題である。例えば致命的なバグを直してもそれを反映できなくなる。

可能ならばユーザー環境へのキャッシュを抑止して常に最新だけが実行されるようにしたい。もともとこの想定だったが実態はそうなっていないようなので。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant