1.配置文件目录

在根组件下配置一个components文件夹,在文件夹下创建一个login组件

  1. <template>
  2. <div>
  3. 这是一个登录组件
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. name:'',
  9. data () {
  10. return {
  11. }
  12. },
  13. components: {
  14. }
  15. }
  16. </script >
  17. <style scoped lang="less">
  18. </style>

2.配置加载机

安装:

  1. npm i vue-loader@15.4.2 vue-template-compiler@2.6.11

安装vue-loader和 vue-template-compiler(默认情况下不支持import方式引入.vue文件,需要安装下面两个文件).

在webpack.config.js中配置

  1. 1.引入VueLoaderPlugin插件(在vue-loader15版本以后需要配置这个)
  2. const VueLoaderPlugin = require('vue-loader/lib/plugin');
  1. 2.配置VueLoaderPlugin插件
  2. plugins: [
  3. new VueLoaderPlugin()
  4. ],
  1. 3.处理 .vue 文件的 loader
  2. { test: /\.vue$/, use: 'vue-loader' }
  1. // 导入处理路径的模块
  2. var path = require('path');
  3. // 启用热更新的 第2步
  4. const webpack = require('webpack')
  5. //帮我们把html配置到内存中,把打包后的bundle.js注入到html中
  6. var htmlWebpackPlugin = require('html-webpack-plugin');
  7. const VueLoaderPlugin = require('vue-loader/lib/plugin');
  8. // 导出一个配置对象,将来webpack在启动的时候,会默认来查找webpack.config.js,并读取这个文件中导出的配置对象,来进行打包处理
  9. module.exports = {
  10. entry: path.resolve(__dirname, 'src/main.js'), // 项目入口文件
  11. output: { // 配置输出选项
  12. path: path.resolve(__dirname, 'dist'), // 配置输出的路径
  13. filename: 'bundle.js' // 配置输出的文件名
  14. },
  15. mode:'development',
  16. devServer: {
  17. // 这是配置 dev-server 命令参数的第二种形式,相对来说,这种方式麻烦一些
  18. // --open --port 3000 --contentBase src --hot
  19. open: true, // 自动打开浏览器
  20. port: 3000, // 设置启动时候的运行端口
  21. contentBase: 'src', // 指定托管的根目录
  22. hot: true // 启用热更新 的 第1步,只更改修改部分
  23. },
  24. plugins: [ // 配置插件的节点
  25. new webpack.HotModuleReplacementPlugin(), // new 一个热更新的 模块对象, 这是 启用热更新的第 3 步
  26. // 添加plugins节点配置插件
  27. new htmlWebpackPlugin({
  28. template:path.resolve(__dirname, 'src/index.html'),//模板路径
  29. filename:'index.html'//自动生成的HTML文件的名称
  30. }),
  31. // 2.配置VueLoaderPlugin插件
  32. new VueLoaderPlugin()
  33. ],
  34. module: {
  35. rules: [
  36. // 匹配以.css结尾的文件
  37. { test: /\.css$/, use: ['style-loader', 'css-loader'] },
  38. //处理css文件的规则
  39. { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
  40. { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
  41. { test: /\.(ttf|eot|svg|woff|woff2)$/,
  42. use: [
  43. {
  44. loader:'url-loader'
  45. }
  46. ]
  47. }, // 处理 字体文件的 loader
  48. { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ },
  49. //3.处理 .vue 文件的 loader
  50. { test: /\.vue$/, use: 'vue-loader' }
  51. ]
  52. },
  53. resolve: {
  54. alias: {
  55. 'vue$': 'vue/dist/vue.js'
  56. }
  57. }
  58. }