webpack整合Vue

webpack整合vue

1.新建web项目

2.npm init -y 生成package.json

复制package.json包的依赖

  "vue": "^2.6.12",
  "vue-loader": "^15.9.6",
  "vue-template-compiler": "^2.6.12",
  "webpack": "^3.8.1",
  "webpack-dev-server": "^2.9.3",
  "html-webpack-plugin": "^2.30.1"
{
"name": "02-teach-webpack-study02",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
"dev":"webpack-dev-server --open --port 4000 --hot"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
  "vue": "^2.6.12",
  "vue-loader": "^15.9.6",
  "vue-template-compiler": "^2.6.12",
  "webpack": "^3.8.1",
  "webpack-dev-server": "^2.9.3",
  "html-webpack-plugin": "^2.30.1"
}
}

3.安装需要的依赖包,进入项目文件目录下的cmd


cnpm install

4 .修改package.json文件,使用webpack热启动


"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
"dev":"webpack-dev-server --open --port 4000 --hot"
},

5.新建webpack.config.js文件,并修改关键路径信息

可以复制后再修改关键信息,比如入口文件路径和出口文件路径


// 由于 webpack 是基于Node进行构建的,所有,webpack的配置文件中,任何合法的Node代码都是支持的
var path = require('path')
var VueLoaderPlugin=require('vue-loader/lib/plugin')
// 在内存中,根据指定的模板页面,生成一份内存中的首页,同时自动把打包好的bundle注入到页面底部
// 如果要配置插件,需要在导出的对象中,挂载一个 plugins 节点
var htmlWebpackPlugin = require('html-webpack-plugin')

// 当以命令行形式运行 webpack 或 webpack-dev-server 的时候,工具会发现,我们并没有提供 要打包 的文件的 入口 和 出口文件,此时,他会检查项目根目录中的配置文件,并读取这个文件,就拿到了导出的这个 配置对象,然后根据这个对象,进行打包构建
module.exports = {
entry: path.join(__dirname, './main.js'), // 入口文件
output: { // 指定输出选项
  path: path.join(__dirname, './dist'), // 输出路径
  filename: 'bundle.js' // 指定输出文件的名称
},
plugins: [ // 所有webpack 插件的配置节点
  new htmlWebpackPlugin({
    template: path.join(__dirname, './index.html'), // 指定模板文件路径
    filename: 'index.html' // 设置生成的内存页面的名称
  }),
  new VueLoaderPlugin()
],
module: { // 配置所有第三方loader 模块的
  rules: [ // 第三方模块的匹配规则
      { test: /\.vue$/, use: 'vue-loader' }
  ]
}
}

6.新建login.vue文件


<template>
<div>
<h1>登录页面:{{message}}</h1>
</div>
</template>

<script>
export default {
data(){
return {message:'这是login.vue创建的组件'}
},
methods:{
show(){
console.log('方法:'+this.message);
}
},
created(){
this.show();
}

}
</script>

<style>
</style>

7.修改index.html


<body>
<div id="app">
<h1>AAAA</h1>
</div>
</body>

8.修改main.js文件


import Vue from 'vue'
import login from './login.vue'


var vue=new Vue({
el:'#app',
render:c=>c(login)
});

9.启动 npm run dev

原文地址:https://www.cnblogs.com/xiaojiDream/p/14634721.html