1.配置文件目录
在根组件下配置一个components文件夹,在文件夹下创建一个login组件
<template>
<div>
这是一个登录组件
</div>
</template>
<script>
export default {
name:'',
data () {
return {
}
},
components: {
}
}
</script >
<style scoped lang="less">
</style>
2.配置加载机
安装:
npm i vue-loader@15.4.2 vue-template-compiler@2.6.11
安装vue-loader和 vue-template-compiler(默认情况下不支持import方式引入.vue文件,需要安装下面两个文件).
在webpack.config.js中配置
1.引入VueLoaderPlugin插件(在vue-loader15版本以后需要配置这个)
const VueLoaderPlugin = require('vue-loader/lib/plugin');
2.配置VueLoaderPlugin插件
plugins: [
new VueLoaderPlugin()
],
3.处理 .vue 文件的 loader
{ test: /\.vue$/, use: 'vue-loader' }
// 导入处理路径的模块
var path = require('path');
// 启用热更新的 第2步
const webpack = require('webpack')
//帮我们把html配置到内存中,把打包后的bundle.js注入到html中
var htmlWebpackPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
// 导出一个配置对象,将来webpack在启动的时候,会默认来查找webpack.config.js,并读取这个文件中导出的配置对象,来进行打包处理
module.exports = {
entry: path.resolve(__dirname, 'src/main.js'), // 项目入口文件
output: { // 配置输出选项
path: path.resolve(__dirname, 'dist'), // 配置输出的路径
filename: 'bundle.js' // 配置输出的文件名
},
mode:'development',
devServer: {
// 这是配置 dev-server 命令参数的第二种形式,相对来说,这种方式麻烦一些
// --open --port 3000 --contentBase src --hot
open: true, // 自动打开浏览器
port: 3000, // 设置启动时候的运行端口
contentBase: 'src', // 指定托管的根目录
hot: true // 启用热更新 的 第1步,只更改修改部分
},
plugins: [ // 配置插件的节点
new webpack.HotModuleReplacementPlugin(), // new 一个热更新的 模块对象, 这是 启用热更新的第 3 步
// 添加plugins节点配置插件
new htmlWebpackPlugin({
template:path.resolve(__dirname, 'src/index.html'),//模板路径
filename:'index.html'//自动生成的HTML文件的名称
}),
// 2.配置VueLoaderPlugin插件
new VueLoaderPlugin()
],
module: {
rules: [
// 匹配以.css结尾的文件
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
//处理css文件的规则
{ test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
{ test: /\.(ttf|eot|svg|woff|woff2)$/,
use: [
{
loader:'url-loader'
}
]
}, // 处理 字体文件的 loader
{ test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ },
//3.处理 .vue 文件的 loader
{ test: /\.vue$/, use: 'vue-loader' }
]
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.js'
}
}
}