Vue - webpack vue-loader 配置
Vue - webpack vue-loader configuration
每当我想要构建文件时,我总是收到错误消息。这是什么原因呢?
似乎 .vue 文件无法被 webpack 识别,但 webpack 配置文件看起来正常。
Webpack 错误
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!'
}
}
}
为了加载程序正常工作,您需要进行一些额外的配置。
我强烈建议您使用 vue-cli
进行设置,一切正常。
npm install -g vue-cli
vue init webpack-simple hello
cd hello
npm install
npm run dev
基本上,在您的 webpack.config.js
中,您 forgot/made 错误:
1- 加载程序名称应为 loader: 'vue-loader'
而不是 loader: 'vue'
。
2- 创建一个名为 resolve
的密钥,内容为:
alias: {
vue$: 'vue/dist/vue.common.js',
}
3- 这把钥匙 vue: ...loader: babel
不是必需的。
你在使用带有 ESLint 的 vue-cli 吗?
如果这样做,您需要在最后一个分号中的每个元素事件后加一个逗号。
import Vue from 'vue';
import App from './app.vue';
new Vue({
el: 'body',
components: { App },
});
在使用vue的项目中,个人不建议单独配置webpack和vue-loader。可以直接使用vue官方脚手架,vue-cli。不用考虑这些配置,自动配置。vue-cli
如果您刚开始学习 Vue,这里有一个入门级的演示。虽然只是一个小应用,但是涵盖了很多知识点(vue2.0 + vue-cli + vue-router + vuex + axios + mysql + express + pm2 + webpack),包括前端、后台、数据库等网站必备的一些要素,对我来说,学习意义重大,谨此共勉!
每当我想要构建文件时,我总是收到错误消息。这是什么原因呢? 似乎 .vue 文件无法被 webpack 识别,但 webpack 配置文件看起来正常。 Webpack 错误
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!'
}
}
}
为了加载程序正常工作,您需要进行一些额外的配置。
我强烈建议您使用 vue-cli
进行设置,一切正常。
npm install -g vue-cli
vue init webpack-simple hello
cd hello
npm install
npm run dev
基本上,在您的 webpack.config.js
中,您 forgot/made 错误:
1- 加载程序名称应为 loader: 'vue-loader'
而不是 loader: 'vue'
。
2- 创建一个名为 resolve
的密钥,内容为:
alias: {
vue$: 'vue/dist/vue.common.js',
}
3- 这把钥匙 vue: ...loader: babel
不是必需的。
你在使用带有 ESLint 的 vue-cli 吗? 如果这样做,您需要在最后一个分号中的每个元素事件后加一个逗号。
import Vue from 'vue';
import App from './app.vue';
new Vue({
el: 'body',
components: { App },
});
在使用vue的项目中,个人不建议单独配置webpack和vue-loader。可以直接使用vue官方脚手架,vue-cli。不用考虑这些配置,自动配置。vue-cli
如果您刚开始学习 Vue,这里有一个入门级的演示。虽然只是一个小应用,但是涵盖了很多知识点(vue2.0 + vue-cli + vue-router + vuex + axios + mysql + express + pm2 + webpack),包括前端、后台、数据库等网站必备的一些要素,对我来说,学习意义重大,谨此共勉!