webentwicklung-frage-antwort-db.com.de

Vue - Webpack Vue-Loader-Konfiguration

Ich erhalte immer wieder eine Fehlermeldung, wenn ich eine Datei erstellen möchte. Was ist ein Grund dafür? Es scheint, dass die .vue-Datei vom Webpack nicht erkannt wird, aber die Webpack-Konfigurationsdatei sieht richtig aus. Webpack-Fehler

bundle-app.js   189 kB       1  [emitted]  app
    + 12 hidden modules

ERROR in Unexpected token >
 @ ./app/application.js 7:11-31

webpack.config.js

var path = require("path");

module.exports = {
  context: path.join(__dirname, 'src'),
  entry: {
    app: './app/application.js'
  },
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle-[name].js'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: /src/,
        query: {
          presets: ["es2015"]
        }
      },
      {
        test: /\.vue$/,
        loader: 'vue',
      },
    ]
  },
  vue: {
    loaders: {
      js: 'babel'
    }
  }
}

package.json

"devDependencies": {
    "webpack": "~2.2.1",
    "babel-core": "~6.23.1",
    "babel-loader": "~6.3.1",
    "babel-preset-es2015": "~6.22.0",
    "sass-loader": "~6.0.0",
    "node-sass": "~4.5.0",
    "extract-text-webpack-plugin": "~2.0.0-rc.3",
    "vue-template-compiler": "~2.2.4",
    "css-loader": "~0.27.3",
    "vue-loader": "~11.1.4"
  },
  "dependencies": {
    "vue": "~2.2.4"
  }
}

app/application.js

import Vue from 'vue'
import App from './app.vue'

new Vue({
  el: 'body',
  component: { App }
})

app/app.vue

<template>
  <div id="app">
  </div>
</template>

<script>

    export default {
      data () {
        return {
          msg: 'Hello from vue-loader!'
        }
      }
    }
6

Es gibt einige zusätzliche Konfigurationsschritte, die Sie ausführen müssen, damit der Loader ordnungsgemäß funktioniert.

Ich empfehle Ihnen dringend, den vue-cli für das Setup zu verwenden, alles funktioniert in Ordnung.

npm install -g vue-cli
vue init webpack-simple hello
cd hello
npm install
npm run dev

Grundsätzlich haben Sie an Ihrem webpack.config.js folgende Fehler vergessen/gemacht:

1- Der Name des Ladeprogramms sollte loader: 'vue-loader' anstelle von loader: 'vue' lauten.

2- Erstellen Sie einen Schlüssel namens resolve mit folgendem Inhalt:

alias: {
  vue$: 'vue/dist/vue.common.js',
}

3- Und dieser Schlüssel vue: ...loader: babel ist nicht notwendig.

3

In Projekten, die vue verwenden, empfehlen Einzelpersonen, Webpack und vue-loader nicht separat zu konfigurieren. Sie können direkt das offizielle Gerüst von vue, vue-cli, verwenden. Diese automatisch konfigurierten Konfigurationen müssen nicht berücksichtigt werden. vue-cli

Wenn Sie gerade erst angefangen haben, Vue zu lernen, finden Sie hier eine Demo für Anfänger. Es ist zwar nur eine kleine Anwendung, deckt aber viele Wissenspunkte ab (vue2.0 + vue-cli + vue-router + vuex + axios + mysql + express + pm2 + webpack), einschließlich Front-End, Back-End , datenbank und andere seiten Einige der für mich notwendigen elemente, die große bedeutung erlernen, möchten sich gegenseitig ermutigen!

Vue Demo

1
AlloyTeamZy

Verwenden Sie vue-cli mit ESLint? In diesem Fall benötigen Sie nach jedem Elementereignis im letzten und im Semikolon ein Komma.

import Vue from 'vue';
import App from './app.vue';

new Vue({
  el: 'body',
  components: { App },
});
0
victorm