1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Vue CLI 5からvue serveがzero configではなくなった件

Last updated at Posted at 2022-08-13

Vue CLIのバージョンが4から5にアップデートされたら、vue serveコマンドがnpm run serveへのエイリアスに変更された(以下を参照)。

<Vue CLI 4の簡易ヘルプより抜粋>

Commands:
  serve [options] [entry]       serve a .js or .vue file in development mode with zero config
  build [options] [entry]       build a .js or .vue file in production mode with zero config

<Vue CLI 5の簡易ヘルプより抜粋>

Commands:
  serve                         alias of "npm run serve" in the current project
  build                         alias of "npm run build" in the current project

これにより、Vue CLI 4までは使用できたzero configのvue serveコマンドが実質的に削除された。

Vueを学習するためには、zero configの環境は大変有り難いものだったので、非常に残念である。

それなら、バージョンを指定してVue CLI 4を使用しようと考え、本日(2022/08/13現在)Windowsマシンに新規にNode.js 16.16.0をインストールし、以下の手順でVue CLIをインストールしたところ、vue serveコマンドがエラーを発生するようになった。

> npm install -g @vue/cli@4
> npm install -g @vue/cli-service-global@4
> vue serve hoge.vue
...
Error: Cannot find module 'vue-template-compiler'
...

以前(2022/06/25)Raspberry Pi 4にインストールしたVue CLI 4(Node.js 14.17.3, @vue/cli@4.5.13, @vue/cli-service-global@4.5.18)では、現在もvue serveコマンドが正常動作するので、Windows上でも同じバージョンに合わせるようにインストールして見たが、変わらず上記のエラーが発生した。
Linuxマシンでも同様に試したが、結果は同じだった。

Raspberry Pi 4とLinuxマシンでVue CLIのインストール先ディレクトリ以下に存在するファイル/ディレクトリを比較すると、多くの違いがあることが確認されたが、これらの違いを無くすことは困難なので、zero configのvue serveコマンドは諦めることにした。

代替手段

非推奨となっているが、vue initコマンドがまだ使えるので、最小のテンプレートを指定して、限りなくzero configに近い状態にできる。

> npm install -g @vue/cli
> npm install -g @vue/cli-init
> vue init webpack-simple hoge

? Project name hoge
? Project description A Vue.js project
? Author
? License MIT
? Use sass? No

   vue-cli · Generated "hoge".

   To get started:

     cd hoge
     npm install
     npm run dev

上記の結果、hoge\src\App.vueと言う唯一のVUEファイルが作成されるので、これを上書きするなどで、割りと楽に単一ファイルコンポーネントの学習を始められると思う。

App.vueを別のファイルに差し替える場合は、以下の例に倣ってmain.jsを変更すれば良い。

例)App.vueをhello.vueに差し替える場合

src\main.js
import Vue from 'vue'
// import App from './App.vue'
import hello from './hello.vue'

new Vue({
  el: '#app',
//  render: h => h(App)
  render: h => h(hello)
})

なお、vue initコマンドで指定できるテンプレートは以下に存在する。

あとがき

それにしても、なぜもっと騒ぎにならないのだろうか。
便利と言っている人は存在するものの、あまり使われなかったと言うことなのだろうか。

Vue CLI 5でもzero configな環境についてご存じの方は、お知らせいただけると幸いである。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?