vue.jsの例のルータアプリケーション(https://github.com/chrisvfritz/vue-2.0-simple-routing-example)と同様のものをビルドすることはできません。Vue.JSがテンプレートを動的に読み込めません
私はそれを機能させるために、すべてのファンシーなものを削除しました。しかし、私はまだ、ページの読み込みに悪名高いエラーメッセージがあります
[Vue warn]: Failed to mount component: template or render function not defined.
found in
---> <Anonymous>
<Root>
私は動的にページをロードしようとしている、空想何もしなかった:
// file: app/index.js
import Vue from 'vue';
const app = new Vue({
el: "#app",
data: {
},
computed: {
ViewComponent() {
const matchingView = 'Home';
return require('./pages/' + matchingView + '.vue');
},
},
render(h) {
return h(this.ViewComponent);
},
});
とページが唯一の静的なテンプレートです:
:私は理解していない何// file app/pages/Home.vue
<template>
<p>Home Page</p>
</template>
<script>
export default {
};
</script>
は、私は静的に自分のページをインポートする場合、私は私のページを動作させることができるということです
webpackビルドを正しく設定していないと思われますが、ここで何が起こっているのかわかりません...ドキュメントに記載されているようにvue-loaderとvue-template-compilerをインストールしましたが、何も変わらなかった。ここで
は私の依存関係です:
"devDependencies": {
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-preset-es2015": "^6.24.1",
"vue-loader": "^13.0.3",
"vue-template-compiler": "^2.4.2",
"webpack": "^3.4.1",
"webpack-dev-server": "^2.6.1"
},
"dependencies": {
"vue": "^2.4.2"
}
そしてwebpack.config.jsonファイル
var path = require('path');
module.exports = {
entry: './app/index.js',
output: {
path: path.resolve(__dirname, './dist'),
publicPath: '/dist/',
filename: 'app.js',
},
module: {
rules: [
{
test: /\.vue$/,
use: {
loader: 'vue-loader',
},
},
{
test: /\.test$/,
exclude: '/node_modules/',
use: {
loader: 'babel-loader',
},
},
],
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js',
}
},
devServer: {
historyApiFallback: true,
noInfo: true,
},
};
webpackbinで何のエラーもなく... https://www.webpackbin.com/bins/-KqhO-poNk7irR0szpHc – choasia
ええ、私はそれを見ました。私はwebpack.config.jsをどこかに混乱させたようです。しかし、Vue.jsルーティングの例で使用されているものと非常に似ています。そして、これはうまく動作します。 – Egg