webエンジニアの気づき

都内ベンチャーでwebエンジニアとして働く著者が、web開発における気付きをまとめています。golang,railsやVue.js(Nuxt)を主に利用。

dockerでvue-cliを立ち上げようとした際にnpmエラー

f:id:k-enter:20210404212219p:plain

コード

/app/frontend # npm run local-serve

> practice-app@0.1.0 local-serve
> vue-cli-service serve --mode local

sh: vue-cli-service: not found

内容

原因と考えられること

・dockerの立ち上げがうまくいかない時があり、その際にnode modulesを削除して対処していたので、そこら辺が原因かと思われる。

やったこと

・node modulesを入れ直す

解決策

rm -rf node_modules package-lock.json && npm install

考え

vue-cliがないときは、node modulesを入れ直してあげるのが吉。

package.jsonに記載があればもう一度インストールしても問題ない(node modulesはpackage.jsonに依存している)。

package.jsonがあり、package-lock.jsonが存在しない時にnpm install もしくは npm update を行うとpackage-lock.jsonが作られるようだ。

つまり、node_modules と package-lock.json を一旦消して npm install をしてあげることで、それぞれの依存関係の整合性をとることで解決に至ることができたのではないだろうか。

参考にした記事

https://ysko909.github.io/posts/fix-vue-cli-service-command-not-found-error/

【初心者向け】NPMとpackage.jsonを概念的に理解する - Qiita

package-lock.jsonの脆弱性に対応する - 文鳥大好きエンジニアのガラクタ置き場

Vue.jsでライブラリをインポートしたときにエラーが出た時はこちら↓

k-enter.hatenablog.com