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 --hotopen: 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'}}}
