javascript - vue+webpack遇到错误TypeError: this._init is not a function
大家讲道理
大家讲道理 2017-04-11 12:51:01
[JavaScript讨论组]

我写了一个vue.js+webpack的例子,在进行webpack命令时出现了如下错误。

项目结构:

index.html:



  
    
    webpack vue
    
  
  
    

Hell World!

go to foo go to bar

main.js:

import Vue from '../node_modules/vue';
import VueRouter from '../node_modules/vue-router'

Vue.use(VueRouter);

import index from './components/app';
import list from './components/list';
import hello from './components/hello';

Vue.config.debug = true;

var App = Vue.extend({});

var Router = new VueRouter();

router.map({
  '/index': {
    name: 'index',
    component: index,
    subRoutes: {
      '/hello': {
        name: 'hello',
        component: hello
      }
    }
  },
  '/list': {
    name: 'list',
    component: list
  }
});

router.redirect({
  '*': '/index'
});

router.start(App, '#app');

webpack.config.js :

var path = require('path');

module.exports = {
  entry: './src/main',
  output: {
    path: path.join(__dirname, './dist'),
    filename: '[name].js',
    publicPath: '/dist/'
  },
  devServer: {
    historyApiFallback: true,
    hot: false,
    inline: true,
    grogress: true
  },
  module: {
    loaders: [
      { test: /\.vue$/, loader: 'vue' },
      { test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
      { test: /\.css$/, loader: 'style!css!autoprefixer' },
      { test: /\.scss$/, loader: 'style!css!sass?sourceMap' },
      { test: /\.(png|jpg|gif)$/, loader: 'url-loader?limit=8192' },
      { test: /\.(html|tpl)$/, loader: 'html-loader' }
    ]
  },
  vue: {
    loaders: {
      css: 'style!css!autoprefixer!sass',
    }
  },
  babel: {
    presets: ['es2015'],
    plugins: ['transform-runtime']
  },
  resolve: {
    extensions: ['', '.js', '.vue'],
    alias: {
      filter: path.join(__dirname, './src/filters'),
      components: path.join(__dirname, './src/components')
    }
  },
  devtool: 'eval-source-map'
};

app.vue:






是哪里没注意到吗?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(8)
天蓬老师

npm install vue-loader vue-html-loader vue-style-loader css-loader -save

大家讲道理

原因是没有安装 vue-loader,使用 npm install vue-loader --save-dev

ringa_lee

router.start(App, '#app');
话说你把App这个组件挂载到#app上,这样页面里原来的部分还不在?我感觉好像应该是不在的吧

 <p id="app">
  <h1>Hell World!</h1>
  <p>
    <a v-link='{path: '/foo'}'>go to foo</a>
    <a v-link='{path: '/bar'}'>go to bar</a>
  </p>

  <router-view></router-view>
</p>
PHP中文网

原因是npm运用不熟,使用cnpm install,npm run

PHPz

看到一句多余的话:

<script src="dist/vue.js" charset="utf-8"></script>

加来干嘛,没用啊!

怪我咯

毫无悬念, 都是没有认真看代码的

methods: {
  golist () {
    this.$route.router.go({name: 'list'});
  }
}

注意这里是methods不是method

天蓬老师

确保
vue-loader
vue-html-loader
安装

伊谢尔伦

遇到相似问题;
solution:将loader中“vue”改成“vue-loader

loaders: [
{

test: /\.vue$/,
loader: 'vue-loader'

}, ...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号