您的位置:首页 > 产品设计 > UI/UE

webpack打包vue项目demo

2017-06-27 16:32 357 查看
这两天在学习使用webpack去打包vue,遇到了一些坑,在这里提供一套可用的配置供大家参考。



上面是我的目录。(有些文件不是开始新建的文件,下面会进行说明)

首先大家可以新建一个空目录,假设叫vue-test。

进入到里面新建上述的App.vue,main.js,webpack.config.js,index.html这四个文件。

接下来使用npm进行初始化。没有安装node.js的小伙伴安装一下吧,目前npm是安装node时自带了。不用单独安装了。

初始化 : npm init -y

安装必要的loader:见下方图

编写配置文件:webpack.config.js.,见下图

编写App.vue:主要由三个部分组成,template,script,style。

编写main.js

编写index.html文件

使用webpack进行打包,我的版本是2.x。因为配置信息已经写好,所以如果不加参数的话,可以直接在命令行中敲:webpack。就会看到目标文件bundle.js生成。然后手动打开index.html。看到了welcome vue字样。

注:babel.config.js这个文件是为了解决webpack2.x时有些loader的plugin无法进行配置,必须建立对应的 loadername.config.js所进行建立的,里面是:

使用1.0的同学可以去查一下1.0的一个写法,这里就不再演示。

babel.config.js
module.exports=function(){
plugins:[
require("transform-runtime")
]
}


APP.vue
<template>
<div id="app"> //如果你采用的是vue2.0,那么在template里面必须要有一个父标签包含住你的目标标签,本想输出h2,现在要在外面嵌套一层div,就是这个道理。如果使用的是vue1.0就不需要了。
<h2>{{msg}}</h2>
</div>
</template>

<script>
export default{
data(){
return{
msg:"welcome vue"
}
}
}
</script>

<style>
</style>


main.js
import Vue from "vue";
import app from "./App.vue";

new Vue({
el:".container",
render:h=>h(app)//如果你安装的是vue2.0请采用这个语法
});
||
new Vue({
el:".container",
components:{
app:app
}//如果你安装的是vue1.0请采用这个语法
});


index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div class="container" style="height:200px">    //如果是vue2.0这边不用指定<app>这个模板标签,并且使用vue绑定的这个div会在最后的页面中被取代,这就是为什么2.0需要一个嵌套的元素的原因。
</div>
//如果是1.0版本就按照下面的写
<div class="container" style="height:200px">
<app></app>
</div>
<script type="text/javascript" src="bundle.js"></script>
</body>
</html>




上图是我安装的loader,有些看上去没有必要,但是我在打包时明确给我指明了缺少这个module,所以我就添加上了~。



上图是webpack.config.js的配置:其中entry代表入口文件,output代表输出文件信息,module是重要的参数,里面记录了loaders信息。里面配置了解析.vue文件的loader。解析js文件(主要用于解析es6语法)的babel-loader。resolve是预防无法解析vue模块进行的配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: