該当のコード内で、
js
1import Vue from 'vue';
としている部分を
js
1import Vue from 'vue/dist/vue.esm';
とすれば解消すると思います。
Webpackerが自動生成するhello_vue.jsによると、
$mount(要素ID)
以外でVueのコンポーネントを使う場合は、vue/dist/vue.esm
の方を使う必要があるように読み取れます。
config/webpack/shared.js
は必ずしも必要ではありません。
追記(2018/01/05)
config/webpack/shared.js について
こちらについては、
Webpacker 2系でデフォルトで生成される設定ファイルだったようです。
各バージョンで、自動生成されるconfigファイルは下記の通りとなります。
2系 => https://github.com/rails/webpacker/tree/v2.0.0/lib/install/config/webpack
3系 => https://github.com/rails/webpacker/tree/v3.0.0/lib/install/config/webpack
Webpackerは、3系からWebpackの設定をYAMLに隠蔽して、JavaScriptを意識せずに使えるようにする大きな変更が加わっているので、
shared.jsに触れている記事は、情報が古い可能性が高く、あまり参考にされない方が良いかも知れません。
ただし、development.jsとproduction.jsの間で共通で使う設定について、
shared.jsと言うファイルに切り出して読み込むようにするのはありだと思います。(必ずしも必要ではないと言ったのは、こちらの意図でした)
Webpackerの設定ファイルの使い方に関しては、公式のドキュメントに様々なパターンが紹介されているので、こちらを参考にしていただければと思います。
https://github.com/rails/webpacker/blob/v3.2.0/docs/webpack.md
vue/dist/vue.esm について
ファイルの実体としては、プロジェクト配下の、
node_modules/vue/dist/vue.esm.js
を探していただければ見つかると思います。
Webpackのバンドル対象のスクリプト中でimport文を使用した場合、
プロジェクトのpackage.jsonに書かれたモジュール情報を元に、
node_modulesディレクトリ配下のパッケージを探索しに行きます。
import Vue from 'vue';
とした時は、
node_modules/vue/package.jsonで"main"として指定されている、
node_modules/vue/dist/vue.runtime.common.js
がデフォルトで読み込まれます。
一方、
import Vue from 'vue/dist/vue.esm';
とした場合は、
読み込むファイルを明示的に示しているので、
指定のパスから読み込まれます。
詳しくは、
node_modules => Node.jsのモジュールシステム(CommonJS)
import / export => ES2015のモジュールシステム / Webpack
をそれぞれ調べていただければと思います。
いくつかリンクを貼っておきます
Webpackの入門記事 => https://qiita.com/soarflat/items/28bf799f7e0335b68186
Node.jsの入門記事 => https://qiita.com/nextfactory/items/476c5150268e2c7db4ec
ES2015のmodulesについて
・import => https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import
・export => https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/export
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/04 13:02
2018/01/04 23:26
2018/01/04 23:32