質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

2回答

8550閲覧

vue.jsをwebpackが上手くできません

iride

総合スコア18

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

1クリップ

投稿2018/01/21 15:14

###前提・実現したいこと
単一ファイルコンポーネントをwebpackを用いて一から環境構築を行っています。
バンドル自体はできるのですが、できたファイルが上手く動作していません。
よろしくお願いします。

###発生している問題・エラーメッセージ

Uncaught TypeError: Vue is not a constructor at Object.defineProperty.value (main.js:4) at __webpack_require__ (bootstrap fe6a50a69091bed6b855:19) at module.exports (bootstrap fe6a50a69091bed6b855:62) at bootstrap fe6a50a69091bed6b855:62

###該当のソースコード

json

1### package.json ### 2{ 3 "scripts": { 4 "start": "node app.js", 5 "webpack": "webpack", 6 }, 7 "dependencies": { 8 "express": "3.2.6", 9 "pug": "^2.0.0-rc.4", 10 "vue": "^2.5.13" 11 }, 12 "devDependencies": { 13 "babel-core": "^6.26.0", 14 "babel-loader": "^7.1.2", 15 "babel-preset-env": "^1.6.1", 16 "css-loader": "^0.28.9", 17 "html-loader": "^0.5.5", 18 "vue-loader": "^13.7.0", 19 "vue-template-compiler": "^2.5.13", 20 "webpack": "^3.10.0" 21 } 22}
### webpack.config.js ### var path = require("path"); module.exports = { entry: "./src/js/main.js", output: { path : path.join(__dirname, "/public/js"), filename: "bundle.js" }, devtool: "source-map", module: { rules: [ { test: /.jsx?$/, exclude: /node_modules/, loader: "babel-loader" }, { test: /.vue$/, loader: "vue-loader" } ] } };

javascript

1### main.js ### 2var Vue = require("vue"); 3var appOptions = require("./app.vue") 4 5var app = new Vue(appOptions).$mount("#app")
### app.vue ### <style scoped> h1 { color: #f00; } </style> <template> <h1>{{message}}</h1> </template> <script> module.exports = { data: function () { return { message: 'Hello world!' } } } </script>
### index.pug ### extends layout block content h1= title p Welcome to #{title} div(id="app") script(src="/js/bundle.js")

###試したこと
vue-cliを使って、vuejs-templatesからの構築はできていました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

webpack.config.jsに下記を記述しても駄目ですか?

resolve: { alias: { 'vue': 'vue/dist/vue', } },

投稿2018/01/22 00:05

hiro0218

総合スコア68

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

iride

2018/01/22 03:15

記述を追加致しましたら、 エラーは表示されませんが、仮想DOMに切り替わっていないのか、 Hello world!の表示がされておりません。 引き続き問題をご指摘いただけると幸いです。 また、webpack3を使っているので、 resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' } } にしてみましたが、エラーが表示されたままになっております。 今回のケースではこちらのやり方ではない理由についてもご教授いただけると幸いです。 今回の構築ではこちらの記事を参考にしたつもりです。 https://qiita.com/m0a/items/34df129d6d8991ebbf86
hiro0218

2018/01/22 08:27 編集

参考のURLだと、Vue1.x時代の設定のようなので main.js を見直した方が良いかと思います。 ```js new Vue({ el: '#app', render: h => h(appOptions) }) ``` こんな感じにするとか…
iride

2018/01/22 13:35

ありがとうございました。 おかげで無事同作させることができました。
guest

0

公式ドキュメントのVuewのインストールを読むと何かわかるかもしれません。

投稿2018/01/21 23:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問